Re: Erstellen von PopupMenüs zur Laufzeit
Die Items nicht freigeben? :zwinker:
|
Re: Erstellen von PopupMenüs zur Laufzeit
siehe Kommentare:
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin Application.ShowMainForm:= false; MenuItem:= TMenuItem.Create(Self); // mach das weg //Variablen "nullen" i:=0; //ini-Datei einlesen Datei:=TStringList.Create; if FileExists('Verknüpfungen.ini') then begin Datei.LoadFromFile('Verknüpfungen.ini'); end else begin ShowMessage('Die Datei "Verknüpfungen.ini" konnte nicht gefunden werden und wird deshalb neu erstellt!'); Datei.SaveToFile('Verknüpfungen.ini'); close(); end; //Liste der Verknüpfungen zusammenbauen while i < Datei.Count do begin MenuItem:= TMenuItem.Create(Self); MenuItem.Caption:=Datei.Strings[i]; MenuItem.OnClick:=Anwendung; MenuItem.Tag:=i+1; PopupMenu1.Items.Add(MenuItem); MenuItem.Free; // und mach das weg i:=i+2; end; i:=0; end; |
Re: Erstellen von PopupMenüs zur Laufzeit
Und nun mach das weg. ;-)
|
Re: Erstellen von PopupMenüs zur Laufzeit
Habe es schließlich so gemacht und es läuft super!!! Vielen Dank an alle Beteiligten. Vielleicht kann mir auch noch jemand sagen, wie ich den dynamischen Items noch Short-Cuts und Bitmaps hinzufügen kann. Das Problem ist nämlich, dass ich den ShortCut nicht in der Konfigurationsdatei speichern und die Bitmap nicht über einen Pfad angeben kann.
Aber trotzdem vielen Dank! Und hier mein Code:
Delphi-Quellcode:
Application.ShowMainForm:= false;
//MenuItem:= TMenuItem.Create(Self); //Variablen "nullen" i:=0; //ini-Datei einlesen Datei:=TStringList.Create; if FileExists('Verknüpfungen.ini') then begin Datei.LoadFromFile(ExtractFilePath(Application.ExeName)+'Verknüpfungen.ini'); end else begin ShowMessage('Die Datei "Verknüpfungen.ini" konnte nicht gefunden werden und wird deshalb neu erstellt!'); Datei.SaveToFile('Verknüpfungen.ini'); close(); end; //Liste der Verknüpfungen zusammenbauen while i < Datei.Count do begin try MenuItem:= TMenuItem.Create(Self); MenuItem.Caption:=Datei.Strings[i]; MenuItem.OnClick:=Anwendung; MenuItem.Tag:=i+1; PopupMenu1.Items.Add(MenuItem); //MenuItem.Free; i:=i+2; except // end; end; i:=0; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz