Ver Mensaje Individual
  #4  
Antiguo 27-02-2013
memoferprof memoferprof is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 20
Reputación: 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