Ver Mensaje Individual
  #1  
Antiguo 04-12-2007
vlanka24 vlanka24 is offline
Miembro
 
Registrado: mar 2007
Ubicación: México.
Posts: 23
Reputación: 0
vlanka24 Va por buen camino
Uso de FindComponent

Hola a todos...

De ante mano le agradezco que lean este problemilla.

Estoy creando unas etiquetas en tiempo de ejecución conforme a una lista de empleados esto lo hago de la siguiente manera:

Código Delphi [-]
 
procedure TFmRegistro.CrearListaReg;
const Nom = 'Lb';
var i: Integer;
begin
{BORRO LOS COMPONENTES QUE SE HAYAN CREADO ANTERIOR/}
ScrollB.DestroyComponents;
For i:=1 to DataMod.TbEmpleados.RecordCount do
begin
{CREAR LAS ETIQUETAS CON EL NOMBRE DEL ID EMPLEADO}
Etiqueta:= TLabel.Create(ScrollB);
Etiqueta.Caption:= DataMod.TbEmpleadosNOMBRECOMP.DisplayText;
Etiqueta.Width:= 300;
Etiqueta.Left:= 8;
Etiqueta.Top:= 8 + i*20;
Etiqueta.Name:= Nom + DataMod.TbEmpleadosID_EMPLEAD.DisplayText;
Etiqueta.Parent:= ScrollB;
{ASIGNO LOS EVENTOS A LOS CUALES VA A RESPONDER EL COMPONENTE}
Etiqueta.OnClick:= Self.MiClick;
{CREAR TEXTOS}
Textos:= TStaticText.Create(ScrollB);
if DataMod.TbTipoEmp.FindKey([DataMod.TbEmpleadosIDTIPO_EMP.DisplayText]) then
Textos.Caption:= DataMod.TbTipoEmpTIPO.DisplayText + ' ' + '$:' + DataMod.TbTipoEmpSUELDO_BAS.DisplayText + ' ' + LbEdAcierre.Text;
Textos.Width:= 300;
Textos.Left:= 328;
Textos.Top:= 8 + i*20;
Textos.Parent:= ScrollB;
DataMod.TbEmpleados.Next;
end;
end;

Este código me funciona muy bien el problema es que cuando quiero marcar a un empleado con la falta al darle click la etiqueta que se supone ya le asigne un nombre y esta creada; no me crea el componente, para buscarlo hago lo siguiente:


esto es solo una prueba para saber si me identifica las etiquetas:

Código Delphi [-]
procedure TFmRegistro.Button1Click(Sender: TObject);
var
i:Integer;
begin
for i:= 0 to ComponentCount -1 do
if Components[i] is TLabel then
TLabel(Components[i]).Caption := 'Arpeel';
end;

Lo que pasa es que la etiquetas creadas en tiempo de diseño no tiene problema pero las que yo estoy creando no las encuentra.


Espero que me entiendan, no se si es tanta mi frustración que digo tanto y al final de cuentas no me doy a enter.

De antemano gracias.

Última edición por dec fecha: 04-12-2007 a las 21:03:06.
Responder Con Cita