Fórum criando popupmenus em run-time... como fazer? #228582

28/04/2004

0

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

Responder

Posts

28/04/2004

Motta

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]


Responder

Gostei + 0

29/04/2004

Salsa

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


Responder

Gostei + 0

29/04/2004

Nildo

Cria um TMenuItem e vai dando Add a partir dela


Responder

Gostei + 0

29/04/2004

Motta

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.


Responder

Gostei + 0

29/04/2004

Salsa

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 :(


Responder

Gostei + 0

29/04/2004

Salsa

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


Responder

Gostei + 0

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

Aceitar