SpeedButton na ToolBar

Delphi

24/03/2004

Olá gostaria de saber como faço para criar um SpeedButton dentro da ToolBar em tempo de execução e vinculá-la a um evento OnClick;

Eis um trecho da minha tentativa

   for j := 0 to PrevFrm.ControlCount-1 do
      begin
         tBar := PrevFrm.Controls[j];
         if tBar is TToolbar then
            begin
               MyButton := TSpeedButton.Create(tBar);
               with MyButton do
                  begin
                  Parent := PrevFrm;
                  height := 32;
                  width := 128;
                  caption := ´teste´;
                  left := 200;// (MyForm.ClientWidth - width) div 2;
                  top := 2;//(MyForm.ClientHeight - height) div 2;
                  end;


Obrigado


Ninjapan

Ninjapan

Curtidas 0

Respostas

Fabiofsilva

Fabiofsilva

24/03/2004

Bom, eu fiz da seguinte forma:

No evento OnCreate do Form incluí as seguintes linhas de código que criam o botão em uma toolbar adicionada no form:

procedure TForm1.FormCreate(Sender: TObject);
var
MyButton: TSpeedButton;
begin
MyButton := TSpeedButton.Create(ToolBar1);
with MyButton do
begin
Parent := ToolBar1;
MyButton.OnClick := MyProcedure;
//Definicao de outras propriedades
end;
end;

Defini ainda na seção private do form uma procedure MyProcedure que, como mostrado anteriormente é associada ao evento OnClick do botão.

type
TForm1 = class(TForm)
ToolBar1: TToolBar;
SpeedButton1: TSpeedButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure MyProcedure(Sender: TObject);
public
{ Public declarations }
end;

O código da procedure MyProcedure pode ser o que você quiser. Eu coloquei o seguinte:

procedure TForm1.MyProcedure(Sender: TObject);
begin
Showmessage(´Evento OnClick do SpeedButton´);
end;

Lembrando que o procedimento que criei deve ter a mesma quantidade de parâmetros que o procedimento OnClick do botão e os parâmetros devem ser do mesmo tipo.

Tomara que tenha ajudo na sua dúvida.


GOSTEI 0
POSTAR