Popupmenü in Delphi dynamisch erstellen

Ein Popup-Menü lässt sich unter Delphi leicht dynamisch erstellen. Das vorliegende Beispiele verwendet TMS-Komponenten, aber man kann hierzu auch leicht die eingebauten Delphi – Komponenten verwenden.

Um das Beispiel nachzuvollziehen, wird ein einfaches VCL-Projekt angelegt mit einem Formular.

Auf diesen Formular werden ein TAdvGlowButton sowie ein TAdvPopupMenu platziert – beide könnte man natürlich auch dynamisch erzeugen.

Zum dynamischen Hinzufügen der Menüeinträge sollte folgender Code in das FormCreate-Ereignis aufgenommen werden:

procedure TForm1.FormCreate(Sender: TObject);
var MenuItems:Tstringlist; i:Byte;
newItem:TMenuItem;
begin
MenuItems:=TStringlist.Create;
MenuItems.Add(‚Eintrag 1‘);
MenuItems.Add(‚Eintrag 2‘);
MenuItems.Add(‚Eintrag 3‘);
MenuItems.Add(‚Eintrag 4‘);
for i := 0 to menuitems.Count-1 do
begin
NewItem:=TMenuItem.Create(AdvPopupMenu1);
NewItem.Caption:=menuitems.Strings[i];
NewItem.OnClick := PopupItemClick;
NewItem.tag:=i;
self.AdvPopupMenu1.Items.Add(newItem);
end;
menuItems.Free;
end;

Die OnClick-Routine wird dem Privat-Abschnitt der Form hinzugefügt:

private
{ Private-Deklarationen }
procedure PopupItemClick(Sender: TObject) ;

und dann im Implemenationsabschnitt hinzugefügt

procedure TForm1.PopupItemClick(Sender: TObject) ;
var x:Byte;
begin
x:=(sender as TMenuItem).tag;
showmessage(‚Sie haben Eintrag ‚+IntToStr(x+1)+‘ ausgewählt‘);
end;

Um zu wissen, welcher Menüeintrag geklickt wurde, wird die Tag – Eigenschaft des jeweiligen Menüeintrags verwendet, diese könnte dann in PopupItemClick

wie folgt ausgewertet werden:

case x of
0 : …;
1 : …;
end;

Selbstverständlich könnte man auch jedem Menüeintrag einen eigenes OnClick-Event zuweisen.

Die Stringlist ‚MenuItems‘ könnte natürlich auch aus einer Textdatei gespeist werden:

MenuItems.loadfromfile(‚Ihre Datei‘);

Jede Zeile der externen Datei enthält dann einen Menüeintrag.

Das Ganze lässt sich natürlich noch erheblich ausbauen, ist aber bereits eine vollständige Basis für ein dynamisch erstelltes Popmenü. Beispiel zum Herunterladen (Benötigt TMS Komponenten und Delphi 2009).

Viel Spaß beim Tüfteln!

Werbung & Infos:

Sicher im Home Office –  Angebote Antivirus & Internet Security

» Avira Prime mit 65% Rabatt 
» Bitdefender Antivirus, Internet Security und Total Security mit bis zu 62% Rabatt


HP Frühlingsangebote 2024


Verwandte Themen: