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, MessagesSysUtilsVariantsClasses,

  GraphicsControlsForms,
  DialogsMenus;

type
  TfmPopUpMenu = class(TForm)
    pmPopUpMenuTPopupMenu;
    pmAlfaTMenuItem;
    pmBetaTMenuItem;
    pmGammaTMenuItem;
    N1: TMenuItem;
    pmExitTMenuItem;
    procedure pmExitClick(SenderTObject);
    procedure pmAlfaClick(SenderTObject);
    procedure FormCreate(SenderTObject);
    procedure pmBetaClick(SenderTObject);
    procedure pmGammaClick(SenderTObject);
  private
    Private declarations }
  public
    Public declarations }
  end;

var
  fmPopUpMenuTfmPopUpMenu;

implementation

{$R *.dfm}

procedure TfmPopUpMenu.pmExitClick(SenderTObject);
begin
  Close;
end;

procedure TfmPopUpMenu.FormCreate(SenderTObject);
begin
  Randomize;
end;

procedure TfmPopUpMenu.pmAlfaClick(SenderTObject);
begin
  Canvas.TextOut(Random(500),Random(300),'Alfa');
end;

procedure TfmPopUpMenu.pmBetaClick(SenderTObject);
begin
  Canvas.TextOut(Random(500),Random(300),'Béta');
end;

procedure TfmPopUpMenu.pmGammaClick(SenderTObject);
begin
  Canvas.Rectangle(10,10,Random(500),Random(300));
end;

end.