Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Supongo que te refieres a que creas varios componentes utilizando la misma referencia (si no así Roman tiene razón...):

Código Delphi [-]
 var 
   Edit:tEdit;
 begin
 ...
 for i := 0 to 10 do begin
    Edit := TEdit.Create(...);
  ...
  Edit.Name := '???';

end;

Para obtener componentes con FindComponent necesitas tener el nombre y como comprobación adicional utilizar el operador IS. Algo así podría ser un ejemplo:

Código Delphi [-]
 var 
   Edit:tEdit;
   i:Integer;
   comp:TComponent;
 begin
 ...
 for i := 0 to 10 do begin
   Name := 'Edit' + IntToStr(i);  // para ir cambiando el nombre
   // Buscamos el componente
   comp := FindComponent(Name);
   // Lo ha encontrado?
   if Assigned(comp) then begin
     // Asegurarnos de que es un Edit (tal vez no haría falta.)
     if (comp is TEdit) then begin
       TEdit(comp).Text := 'Encontrado';
       TEdit(comp).Color := clGray;      
     end;
   end;
 end;
 

NOTA: En la ayuda de Delphi tienes algun eemplo más del FindComponent:
NOTA: Te he puesto el código de memoria (no lo he compilado), así que tal vez tenga algun error de sintaxis.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 27-02-2013
memoferprof memoferprof is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 20
Poder: 0
memoferprof Va por buen camino
Talking

Cita:
Empezado por Neftali Ver Mensaje
Supongo que te refieres a que creas varios componentes utilizando la misma referencia (si no así Roman tiene razón...):

Código Delphi [-] var Edit:tEdit; begin ... for i := 0 to 10 do begin Edit := TEdit.Create(...); ... Edit.Name := '???'; end;


Para obtener componentes con FindComponent necesitas tener el nombre y como comprobación adicional utilizar el operador IS. Algo así podría ser un ejemplo:

Código Delphi [-] var Edit:tEdit; i:Integer; comp:TComponent; begin ... for i := 0 to 10 do begin Name := 'Edit' + IntToStr(i); // para ir cambiando el nombre // Buscamos el componente comp := FindComponent(Name); // Lo ha encontrado? if Assigned(comp) then begin // Asegurarnos de que es un Edit (tal vez no haría falta.) if (comp is TEdit) then begin TEdit(comp).Text := 'Encontrado'; TEdit(comp).Color := clGray; end; end; end;


NOTA: En la ayuda de Delphi tienes algun eemplo más del FindComponent:
NOTA: Te he puesto el código de memoria (no lo he compilado), así que tal vez tenga algun error de sintaxis.

Saludos Deftali
Preguntando acerca de el FindComponent, este mismo puede encontrar o reconocer componentes de otro Form?
Osea algo asi como
Código Delphi [-]
with TUniPanel(FindComponent('Main.MainForm.PDomi1')) do
      begin
        Left := PDomi.Left;
        Top :=  PDomi.Top;
        width := PDomi.Width;
        Height:= PDomi.Height;
        Color := Random(MaxInt) and $FFFFFF;
        Visible := True;
        Caption := Main.MainForm.DBEditRolGuia.Text;
      end;
Es que en mi caso quiero heredar esos valores de ancho, alto, izquierda, arriba de PDomi a otro Panel de otro Form.
Se que no lo estoy haciendo bien, porque al ejecutar eso me devuelve errores, no se podrias orientarme.
Gracias.
Responder Con Cita
  #3  
Antiguo 27-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por memoferprof Ver Mensaje
Saludos Deftali
... este mismo puede encontrar o reconocer componentes de otro Form?
Hola memoferprof.

Por supuesto que si. Claro que debes especificar el form.

Un ejemplo bien simple:
Código Delphi [-]
...
uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ...
  Caption:= TEdit(Form2.FindComponent('Edit1')).Text
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 27-02-2013 a las 19:02:12. Razón: ortografía
Responder Con Cita
  #4  
Antiguo 27-02-2013
memoferprof memoferprof is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 20
Poder: 0
memoferprof Va por buen camino
Talking

Cita:
Empezado por ecfisa Ver Mensaje
Hola memoferprof.

Por supuesto que si. Claro que debes especificar el form.

Un ejemplo bien simple:
Código Delphi [-]... uses Unit2; procedure TForm1.Button1Click(Sender: TObject); begin ... Caption:= TEdit(Form2.FindComponent('Edit1')).Text end; ...


Saludos.
Wow!!
Gracias eficsa
Sin probarlo, estoy seguro que esa es mi solucion al problema que tengo, no lo habia pensado de esa manera jeje o tal vez no alcanzaba mi mente a entenderlo asi o simplemente no sabia que se podia asi. Pero gracias, gracias.
Responder Con Cita
  #5  
Antiguo 27-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola memoferprof.

Como dato adicional, en el código anterior (msg #5) donde están los "...", es conveniente que verifiques que el componente contenedor (form) haya sido creado para evitar una excepción:
Código Delphi [-]
  ...
  if Assigned(Form2) then  // verificar
    Caption:= TEdit(Form2.FindComponent('Edit1')).Text;
  ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 27-02-2013
memoferprof memoferprof is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 20
Poder: 0
memoferprof Va por buen camino
Talking

Cita:
Empezado por ecfisa Ver Mensaje
Hola memoferprof.

Como dato adicional, en el código anterior (msg #5) donde están los "...", es conveniente que verifiques que el componente contenedor (form) haya sido creado para evitar una excepción:
Código Delphi [-] ... if Assigned(Form2) then // verificar Caption:= TEdit(Form2.FindComponent('Edit1')).Text; ...


Saludos.
Lo hare de esa manera, solo quiero agregar mi comentario para explicar mi entendimiento:
estaba haciendo mal uso de la funcion FindComponent, lo que yo hacia era decirle a la funcion FindComponent que fuera a
Código Delphi [-]
with TUniPanel(FindComponent('Main.MainForm.PDomi1')) do
y por lo que me has enseñado, lo que debo hacer es ir a la MainForm y decirle que use la funcion FindComponent para que ahi ya busque el componente que deseo, osea que algo asi:
Código Delphi [-]
with TUniPanel(Main.MainForm.FindComponent('PDomi1')) do
Gracias nuevamente.

Última edición por memoferprof fecha: 27-02-2013 a las 19:59:57. Razón: Error en un codigo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:52:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi