Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Einträge im Untermenü zur Laufzeit erzeugen (https://www.delphipraxis.net/230-eintraege-im-untermenue-zur-laufzeit-erzeugen.html)

Tpercon 22. Jun 2002 18:19


Einträge im Untermenü zur Laufzeit erzeugen
 
Ich möchte in einem Menüeintrag ein Untermenü zur Laufzeit erstellen. Die Beschriftung der Einträge des Untermenüs sollen aus einer Ini- Datei geladen werden.
Wie erzeuge ich die Einträge im Untermenü eines Menüeintrages?

MrSpock 22. Jun 2002 19:45

Hallo TPercon,

du mußt ein neues TMenuItem erstellen und dem Menuepunkt, zu dem er das Untermenue bilden soll mit Add hinzufügen:

Code:
   NewItem := TMenuItem.Create(Self);
   NewItem.Caption := Ini.ReadString('Menus', 'Eintrag1','-');
   AltesMenu.Add(NewItem);

Tpercon 22. Jun 2002 20:22

Danke MrSpock!
Es war wohl wieder viel zu einfach, um selbst drauf zu kommen.

Gruß

EvilDragon 12. Jun 2004 11:50

Re: Einträge im Untermenü zur Laufzeit erzeugen
 
hab nach diesem beispiel alles gemacht, klappt auch, nur wie bekomme ich es jetzt hin, das beim klick auf eins der erstellten untermenüs etwas ausgeführt wird??

Delphi-Quellcode:
  findfirst(ExtractFilePath(ParamStr(0))+'skins/'+'*.ini',faAnyFile-faDirectory,F);
  repeat
    if not ((f.name = '.') or (f.name = '..')) then
    begin
      Delete(f.Name, Length(f.Name)-3, 4);
      NewItem := TMenuItem.Create(Self);
      NewItem.Caption := (f.Name);
      Skins2.Add(NewItem);
    end;
  until findnext(F) <> 0;
  ini_skin := TiniFile.Create(ExtractFilePath(ParamStr(0))+'skins/'+skinname);
  try

Muetze1 12. Jun 2004 13:42

Re: Einträge im Untermenü zur Laufzeit erzeugen
 
Moin!

Delphi-Quellcode:
  findfirst(ExtractFilePath(ParamStr(0))+'skins/'+'*.ini',faAnyFile-faDirectory,F);
  repeat
    if not ((f.name = '.') or (f.name = '..')) then
    begin
      Delete(f.Name, Length(f.Name)-3, 4);
      NewItem := TMenuItem.Create(Self);
      NewItem.Caption := (f.Name);
      NewItem.OnClick := DieOnClickDieDuWillst; // <---
      Skins2.Add(NewItem);
    end;
  until findnext(F) <> 0;
  ini_skin := TiniFile.Create(ExtractFilePath(ParamStr(0))+'skins/'+skinname);
  try
MfG
Muetze1

EvilDragon 12. Jun 2004 14:29

Re: Einträge im Untermenü zur Laufzeit erzeugen
 
onklick hab ich mir schon gedacht.. muss ich dann eine procedur/function coden, auf die das onklick verweist???

StefanDP 12. Jun 2004 15:07

Re: Einträge im Untermenü zur Laufzeit erzeugen
 
Zitat:

Zitat von EvilDragon
onklick hab ich mir schon gedacht.. muss ich dann eine procedur/function coden, auf die das onklick verweist???

genau! ungefähr so:
Delphi-Quellcode:
procedure TForm1.Geklickt(Sender: TObject); // edit: Muss TForm1... sein
begin
...
end;

...
NeuesMenuItem.OnClick := Geklickt;
...

EvilDragon 12. Jun 2004 15:26

Re: Einträge im Untermenü zur Laufzeit erzeugen
 
ich bekomme es net hin, bin auch grad das forum durch und die hilfe aber nichts....

hat vielleicht jemand ein beispiel....ambesent halt kurtz und kanp wie s in der unit auszudehen hat, voral das mit der eigene procedur....

danke in voraus schon mal

StefanDP 12. Jun 2004 15:34

Re: Einträge im Untermenü zur Laufzeit erzeugen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ein funktionierendes Beispiel im Anhang

EvilDragon 12. Jun 2004 15:42

Re: Einträge im Untermenü zur Laufzeit erzeugen
 
DANKE, genau so wat braucht ich :oops:
klappt einwandfrei ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr.
Seite 1 von 2  1 2      

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