PopUp menük
A PopUp
menüket szokás lokális (előbukkanó) menüknek is nevezni. Helyezzünk a formra szerkesztési időben a Standard palettáról egy PopupMenu ikont. Ezen az ikonon kettőt kattintva a
menüszerkesztőbe jutunk. A Menü és Almenü
szerkesztéséhez hasonlóan adjunk neveket a menüpontoknak: Alfa, Béta, Gamma,
Választóvonal, Exit:
Az Alfa menüponthoz rendeljük hozzá az Alfa szöveg
véletlen helyen történő megjelenését. A Bétához hasonlóan a Béta szöveg
megjelenését. A Gamma menüpont kiválasztására rajzoljon a program egy (10,10) bal felső csúcspontú, véletlen oldalhosszú téglalapot.
Az Exit kiválasztása a program befejezését jelentse.
Futtassuk a programot és a formon az egér jobb
fülével kattintva, próbáljuk előhozni a menüt. Nem fog sikerülni. Egy lépés
ugyanis még hiányzik. A PopUp menü ugyanis csak
valamely látható elemen való kattintás esetén jelenik meg. Ezt a kérdéses
vizuális elem PopupMenu tulajdonságában kell
beállítani. A tulajdonság kiválasztása után a már definiált PupupMenu-k
listájából a hozzárendelendőt ki kell választani. Ahhoz tehát, hogy a jelen
menünk működjön, az egyetlen vizuális elemnek, a főformnak
a PopupMenu-véjé kell tenni. Ezek után már működni
fog a menü. A futási kép lehet például ilyen:
A program listája:
unit UPopUpMenu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, Menus;
type
TfmPopUpMenu = class(TForm)
pmPopUpMenu: TPopupMenu;
pmAlfa: TMenuItem;
pmBeta: TMenuItem;
pmGamma: TMenuItem;
N1: TMenuItem;
pmExit: TMenuItem;
procedure pmExitClick(Sender: TObject);
procedure pmAlfaClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure pmBetaClick(Sender: TObject);
procedure pmGammaClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmPopUpMenu: TfmPopUpMenu;
implementation
{$R *.dfm}
procedure TfmPopUpMenu.pmExitClick(Sender: TObject);
begin
Close;
end;
procedure TfmPopUpMenu.FormCreate(Sender: TObject);
begin
Randomize;
end;
procedure TfmPopUpMenu.pmAlfaClick(Sender: TObject);
begin
Canvas.TextOut(Random(500),Random(300),'Alfa');
end;
procedure TfmPopUpMenu.pmBetaClick(Sender: TObject);
begin
Canvas.TextOut(Random(500),Random(300),'Béta');
end;
procedure TfmPopUpMenu.pmGammaClick(Sender: TObject);
begin
Canvas.Rectangle(10,10,Random(500),Random(300));
end;
end.