Criacao de componente em RunTime

Delphi

09/03/2004

Estou desenvolvendo um projeto no qual preciso criar componentes em tempo de execução. Até aí tudo bem. Porem estou tendo dificuldade de elaborar uma rotina para saber em qual desses componentes criados em run-time o usuário está interagindo. Ex: Se eu criei cinco componenetes do tipo TButton em RunTime, como eu faco para saber que em qual dos botoes o usuario clicou e disparar a rotina a associada ao evento desse botão.

Obs: A rotina a ser disparada é a mesma para todos os botoes mas eu preciso saber qual o botao que o usuario clicou. O numero de componentes criados em run-time é variável.


Tatuweb

Tatuweb

Curtidas 0

Respostas

Ltres

Ltres

09/03/2004

Cara pelo q entendi vc só quer saber qual botão o user clico.. bom ai vai um exemplo q fiz de como receber informações do botao clicado

var
  Botoes: array of TButton;

procedure TForm1.BotoesClick(Sender: TObject);
begin
  Showmessage(TButton(Sender).Caption);
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  n: integer = 5; //nº de botoes
var
  c: integer;
begin
  for c:=0 to n-1 do
  begin
    SetLength(Botoes, c+1);
    Botoes[c] := TButton.Create(Self);
    Botoes[c].Parent  := Self;
    Botoes[c].Left    := c*10;
    Botoes[c].Top     := c*10;
    Botoes[c].Caption := ´Botão n´ + IntToStr(C);
    Botoes[c].OnClick := BotoesClick;
  end;
end;


Vc pode trocar o Caption pelo Tag do button por exemplo..
Note q criei uma procedure q é disparada no evendo OnClick de cada button.. mas é a mesma para todos


GOSTEI 0
Pantoja

Pantoja

09/03/2004

Bem fiz algo bem parecido uma vez ... criei uma variavel do tipo TSpeedbutton e ao clicar num botao criava outro ai eu clicava no que foi criado e criava um outo mudando a cor do que foi clicado...

fica uma pergunda nao teria uma maneira melhor para detectar o botao clicado?


GOSTEI 0
POSTAR