Desviando enventos do componente

11/12/2003

1

Bom dia pessoal,
Tenho um grande problemão.
Na minha aplicação eu estou criando componentes em tempo de execução, porém preciso adicionar o evento onclick em todos os componentes. Como eu faço para em tempo de execução adicionar o evento on click para os componentes.
Eu havia imaginado criar uma procedure após criar o componente passar
componente.Onclick := Procedure, só que não funciona.
Alguém pode me ajudar?
Obrigado


Responder

Posts

11/12/2003

Cebikyn

Componente.OnClick := Procedure, só funciona se a procedure tiver os mesmos parâmetros do evento desejado e tb se a mesma estiver declarada no form (seção Public, Private, Protected, etc...).

Qualquer outra dúvida sobre o assunto (ou problemas com esta resposta), deixe uma mensagem aqui.


Responder

11/12/2003

Maicongabriel

Em Type, crie um objeto para a manipulação de Eventos

type
  TObj = Class(Tcomponent)
  public
    procedure OnClick(Sender: TObject);
  end;


Declare as variáveis globais

var
  obj      : TObj;
  btnTeste : TButton;


Crie a procedure OnClick do objeto

procedure TObj.OnClick(Sender: TObject);
begin
    if Sender = btnTeste then
      ShowMessage(´O Botão Teste foi clicado!´);
end;


Crie um botão dinâmico

  btnTeste := TButton.Create(Self);
  with btnTeste do
  begin
    Width   := 60;
    Height  := 25;
    Caption := ´Teste´;
    Left    := 10;
    Top     := 10;
    Visible := True;
    Parent  := Self;
    OnClick := Obj.OnClick;
  end;


É isso! abraços...


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira