Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   array de botones (https://www.clubdelphi.com/foros/showthread.php?t=19774)

Maga84 25-03-2005 15:54:13

array de botones
 
Hola a todos.
Soy principiante con delphi
A ver si os se explicar mi duda
he hecho un array de botones que tiene como maximo 30 elementos:

bnt:array [1..30] of Tbutton;

En el FormCreate creo los botones según el número de elementos que tengo en una tabla.
for i:=1 to ADOTable1.RecordCount do
begin

...

bnt[i]:=tbutton.Create(self);
bnt[i].Left:=335;
bnt[i].Top:=16;
bnt[i].Width:=50;
bnt[i].Height:=25;
bnt[i].ParentWindow:=p[i].Handle;
bnt[i].Name:='Binfo'+IntToStr(i);
bnt[i].Font.Size:=20;
bnt[i].Caption:='...';

...

end;

Ahora lo que quiero es que todos los botones tengan un mismo procedure OnClick pero no se como se hace esto. Además quiero que dependiendo del indice del boton se haga algo.
Esto con visual basic me parecía muy facil. Pero con delphi todavía ando un poco perdida.:confused: :confused:
Seguro habrá alguna manera sencilla de hacer esto.
Por favor echarme un cable.
Gracias
Un saludo
;)

roman 25-03-2005 16:22:16

Simplemente asigna a la propiedad OnClick de cada botón el método que desees:

Código Delphi [-]
bnt[i].OnClick := BotonClick;

BotonClick deberá ser un método declarado con los mismos parámetros del evento:


Código Delphi [-]
TForm1 = class(TForm)
public
  procedure BotonClick(Sender: TObject);
end;

Para lo de los índices puedes usar la propiedad Tag de cada botón:

Código Delphi [-]
bnt[i].Tag := i;

Así, en el método BotonClick usarías algo como:

Código Delphi [-]
case TButton(Sender).Tag of
  1: {código para el botón 1}
  2: {código para el botón 2}
  3: {código para el botón 3}

  ...
end;

// Saludos

Maga84 25-03-2005 16:24:30

Gracias!!
 
No me esperaba una respuesta tan inmediata!!
muchas gracias de verdad:)


La franja horaria es GMT +2. Ahora son las 00:19:30.

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