Delphi - MainMenu elemeinek megjelenítése PopupMenu-ként

forráskód letöltése
A TPopupMenu komponens nem az egyetlen lehetőség, hogy popup menüket hozzunk létre. Ha éppen úgy kívánjuk, akkor a főmenü (TMainMenu) egy-egy menüjét is megjeleníthetjük popup menüként, ha éppen erre van szükségünk. A függvény neve, ami a bevezetőben említett műveletet elvégzi a TrackPopupMenu névre hallgat. Első paramétere a menü azonosítója (Handle). A második paraméter a menü tulajdonságait határozza meg, amit konstansokkal lehet megadni. Ezután következik a menü X és Y koordinátája. A következő paraméter jelenleg nem használt, későbbi fejlesztésekhez van fenntartva, ezért adjunk meg 0-t. Meg kell még adnunk az ablak leíróját (Handle), valamint egy nil-t, mivel az utolsó paraméter szintén figyelmen kívül marad.

Az alábbi kód a Button1 OnClick eseményénél fut le, és a gomb alatt megjeleníti a File menüt.
procedure TForm1.Button1Click(Sender: TObject);
var px, py:integer;
begin
  px:=Button1.ClientOrigin.x;
  py:=Button1.ClientOrigin.y+Button1.Height;
  TrackPopupMenu(File1.Handle, TPM_LEFTBUTTON or TPM_LEFTALIGN, px, py, 0, Handle, nil);
end;