criando popupmenus em run-time... como fazer?

Delphi

28/04/2004

seguinte ... eu tenho uma toolbar ...
e nela speedbuttons .. q vou criando em run-time ...

ok ...

como eu faço pra por ex ... qndo clickar com o botao direito encima de um speedbutton ... ele abrir um popupmenu com uma opçao assim fechar ... ae qndo eu clickar no fechar do popupmenu ... ele dar um free nesse speedbutton clickado?


valeuz


Salsa

Salsa

Curtidas 0

Respostas

Motta

Motta

28/04/2004

para saber o que/quem chamou




unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Menus;

type
TForm1 = class(TForm)
Button1: TButton;
PopupMenu1: TPopupMenu;
del1: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure del1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var sb : TSpeedButton;
begin
sb := TSpeedButton.Create(Self);
with sb do
begin
sb.PopupMenu := PopupMenu1;
sb.Visible := True;
sb.Parent := Self;
sb.Top := Random(Self.Width);
end;
end;

procedure TForm1.del1Click(Sender: TObject);
begin
if PopupMenu1.PopupComponent is TSpeedButton then
TSpeedButton(PopupMenu1.PopupComponent).Free;
end;

end.





é mais fácil criando o pop em desenho..[/code]


GOSTEI 0
Salsa

Salsa

28/04/2004

mas como adiciono um item no popupmenu ....???


GOSTEI 0
Nildo

Nildo

28/04/2004

Cria um TMenuItem e vai dando Add a partir dela


GOSTEI 0
Motta

Motta

28/04/2004

crie em desenho (duplo clique no Tpopupmenu) e vincule o botão criado ao item de menu en runtime, vc teria que criar a lõgica do menuitem de qq forma, dá menos trabalho assim, basta apenas um pop pois vc pode saber quem o ´chamou´


para saber o que/quem chamou




unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Menus;

type
TForm1 = class(TForm)
Button1: TButton;
PopupMenu1: TPopupMenu;
del1: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure del1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var sb : TSpeedButton;
begin
sb := TSpeedButton.Create(Self);
with sb do
begin
sb.PopupMenu := PopupMenu1;//<<--atribui o pop
sb.Visible := True;
sb.Parent := Self;
sb.Top := Random(Self.Width);
end;
end;

// logica criada em desenho
// PopupComponent é o comp. que chamou
procedure TForm1.del1Click(Sender: TObject);
begin
if PopupMenu1.PopupComponent is TSpeedButton then
TSpeedButton(PopupMenu1.PopupComponent).Free;
end;

end.


GOSTEI 0
Salsa

Salsa

28/04/2004

ainda continuo nao entendendo .... eu crio assim ...


function TMainForm.popup: string;
var pop: TsuiPopupMenu;
P: TPoint;
begin
pop := TSuiPopupMenu.Create(self);
GetCursorPos(P);
pop.Popup(P.X,P.y);
end;


mas nao entendi ainda como eu adiciono um item no popup q eu criei .. pra depois saber se ele foi ckickado ou nao :(


GOSTEI 0
Salsa

Salsa

28/04/2004

ah agora sim eu entendi oq vc kis dizer motta ... valeu


GOSTEI 0
POSTAR