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!

Aktuelle Top Aktionen bei Acer, HP, Lenovo, Bitdefender & Co

Notebook & PC Angebote:
» HP Extra Aktion: 100 Euro Extra sparen bei HP Notebooks ab 999 Euro. Gutscheincode und alle Infos hier im HP Store
» Top bei Otto: Sehr gute HP Notebook Angebote mit Extras wie 4 Jahre Garantie und mehr
» Aktion im Lenovo Store: Bis zu 15% auf ausgewählte und recht gute Artikel (IdeaPad und Yoga Notebooks, Tablet PCs, Gaming Notebooks und PCs)
» Große Rabattaktion bei Acer: bis 21.05.2018 gibt es 15% Rabatt auf ultraschlanke Notebooks der Acer Swift Serie
» Notebooksbilliger.de WM Special:Jede Woche 11 neue Top Angebote>
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick

Aktuelle Bitdefender Aktionen:
» Neue Aktion: Bitdefender 39 Euro Flat mit 5 Geräten
» Bitdefender +1 Jahr dazu-Aktion
» Die neue Bitdefender 40% und mehr Rabatt Aktion
» Top für neue PCs! Bitdefender Internet Security 2018 PC Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95

Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick


Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.