Fórum Ajudar para codificar evento em runtime #365400

23/10/2008

0

Necessito criar um TForm + TEdit + TButton e codificar o evento OnClick do TButton, mas só que tudo em runtime . Tentei fazer mas sem sucesso... Como faço isso? Estou errando basicamente na criação do evento e seu código de execução.

Obrigado a todos e aguardeço desde já a quem puder ajudar.


Aprendiz_ce

Aprendiz_ce

Responder

Posts

24/10/2008

Vitor Alcantara

Aqui um pequeno exemplo de se fazer isso via run-time

primeiro declaro a procedure do botão na sessão private do meu form por exemplo:

type
  TForm1 = class(TForm)
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    procedure BotaoClick(Sender: TObject);//Aqui ta a declaração
    { Private declarations }
  public
    { Public declarations }
  end;


Depois é só atribuir ao evento OnClick do botão

procedure TForm1.Button3Click(Sender: TObject);
var
  frm:tForm;
  Botao : tButton;
  Edit : tEdit;
begin
  Try
    //Instancia o form
    Frm := TForm.Create(nil);
    //Instancia o botão
    Botao := TButton.Create(Frm);
    //Insancia o edit
    Edit := TEdit.Create(Frm);

    with Botao do
    begin
      Parent := frm;
      //Aqui indico o evento OnClick do botão
      //lembrando que esse evento foi declarado acima
      //dentro da class do meu form atual.
      OnClick := BotaoClick;
      Caption := ´Testar´;
      Left := 8;
      Top := 35;
    end;

    with Edit do
    begin
      Parent := frm;
      Name := ´Edit´;
      Left := 8;
      Top := 8;
    end;

    frm.ShowModal;

  Finally
    Frm.Free;
  End;

end;



Responder

Gostei + 0

26/01/2009

Aprendiz_ce

[quote:56e15536c6=´Vitor Araujo Alcantara´]Aqui um pequeno exemplo de se fazer isso via run-time

primeiro declaro a procedure do botão na sessão private do meu form por exemplo:

type
  TForm1 = class(TForm)
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    procedure BotaoClick(Sender: TObject);//Aqui ta a declaração
    { Private declarations }
  public
    { Public declarations }
  end;


Depois é só atribuir ao evento OnClick do botão

procedure TForm1.Button3Click(Sender: TObject);
var
  frm:tForm;
  Botao : tButton;
  Edit : tEdit;
begin
  Try
    //Instancia o form
    Frm := TForm.Create(nil);
    //Instancia o botão
    Botao := TButton.Create(Frm);
    //Insancia o edit
    Edit := TEdit.Create(Frm);

    with Botao do
    begin
      Parent := frm;
      //Aqui indico o evento OnClick do botão
      //lembrando que esse evento foi declarado acima
      //dentro da class do meu form atual.
      OnClick := BotaoClick;
      Caption := ´Testar´;
      Left := 8;
      Top := 35;
    end;

    with Edit do
    begin
      Parent := frm;
      Name := ´Edit´;
      Left := 8;
      Top := 8;
    end;

    frm.ShowModal;

  Finally
    Frm.Free;
  End;

end;
[/quote:56e15536c6]

Olá Vitor,

Ajustei o código as minhas necessidade e ficou certinho.

Obrigado pela atenção.

Abraço.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar