Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Erstellen von PopupMenüs zur Laufzeit (https://www.delphipraxis.net/112970-erstellen-von-popupmenues-zur-laufzeit.html)

Die Muhkuh 30. Apr 2008 20:37

Re: Erstellen von PopupMenüs zur Laufzeit
 
Die Items nicht freigeben? :zwinker:

tomsel 30. Apr 2008 20:39

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;

Die Muhkuh 30. Apr 2008 20:41

Re: Erstellen von PopupMenüs zur Laufzeit
 
Und nun mach das weg. ;-)

Florian L. 1. Mai 2008 16:36

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.
Seite 2 von 2     12   

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