gracias de antemano por tu respuesta pero no me funciona la rutina de onclick de los botones.
el codigo que realizamos es el siguiente quisiera lo revisaras y me indicaras que falta para que funcione correctamente
Código Delphi
[-]
type
TFila = record
p: TButton;
b: TLabel;
a: TEdit;
end;
var
Vertel: TVertel;
FILAS:ARRAY OF TFILA;
procedure TVertel.FormShow(Sender: TObject);
VARCONTADOR,I:INTEGER;
CSID2,LISTALLAMA:STRING;
begin
inherited;
LISTALLAMA:=USUARIOS.Caption;
SETLENGTH(FILAS,LENGTH(LISTALLAMA));
CSID2:=CSID.Caption;
I:=0;
FOR CONTADOR :=1 TO LENGTH(LISTALLAMA) DO
BEGIN ZQUERY3.Close;
ZQUERY3.SQL.Clear;
ZQUERY3.SQL.TEXT:=FORMAT('SELECT * FROM CLIENTES.listel%S
WHERE (INDICE =:INDICE1)',[CSID2]);
ZQUERY3.ParamByName('INDICE1').AsString:=LISTALLAMA[CONTADOR];
ZQUERY3.Open;
IF NOT ZQUERY3.IsEmpty THEN
BEGIN
FILAS[i].a:=TEDIT.Create(SELF);
FILAS[i].A.Parent := Self;
FILAS[i].A.Left := (50);
FILAS[i].A.Top := 120+(I*30);
FILAS[i].A.Width:= 250;
FILAS[i].A.Height :=25 ;
FILAS[i].A.Name:='Edit'+inttostr(i);
FILAS[i].a.Text:=ZQUERY3.Fields[1].AsString;
FILAS[i].A.ReadOnly:=TRUE;
FILAS[i].a.Tag:=I;
FILAS[i].B:=TLABEL.Create(SELF);
FILAS[i].B.Parent := Self;
FILAS[i].B.AutoSize:=FALSE;
FILAS[i].B.Left := (330);
FILAS[i].B.Top := 120+(I*30);
FILAS[i].B.Width:= 150;
FILAS[i].B.Height :=25 ;
FILAS[i].B.Name:='LABEL'+inttostr(i);
FILAS[i].B.Alignment:=taCenter;
FILAS[i].B.Color:=CLRED;
FILAS[i].B.Caption:=ZQUERY3.Fields[7].AsString;
FILAS[i].B.Tag:=I;
IF ZQUERY3.Fields[4].AsString <> '' THEN
BEGIN
FILAS[i].p:=TButton.Create(SELF);
FILAS[i].P.Parent := Self;
FILAS[i].p.Left := (530);
FILAS[i].p.Top := 120+(I*30);
FILAS[i].p.Width:= 50;
FILAS[i].p.Height :=25 ;
FILAS[i].p.Name := 'Button'+ IntToStr(i);
FILAS[i].P.Caption:=ZQUERY3.Fields[4].AsString;;
FILAS[i].p.OnClick:=BotonCualquieraClick;
FILAS[i].P.Tag:=I;
END; i:=i+1;
END;
END;
end;
procedure TVertel.BotonCualquieraClick(Sender: TObject);
var
UnaFila: TFila;
begin
esta es la parte que no me funciona quisiera me explicaras mejor como hacerlo.
ShowMessage(Format('El editor contiene: %s'#13'Y la etiqueta dice: %s',
[UNAFila.A.Text, UNAFila.B.Caption]);
end;
de antemano gracias por tu respuesta.