![]() |
MainMenu - Prozeduren bei Items
Hallo,
Ich habe ein MainMenu, bei dem ich im FormCreate Items aus eine Ini-Datei erstelle. Aber wie kann ich jetzt die entsprechenden Prozeduren dazu erstellen? Ich weiß nicht ob ihr damit was anfangen könnt, deshalb noch etwas Quelltext.
Delphi-Quellcode:
Also wenn ich jetzt auf einen Eintrag clicke soll auch noch was passieren.
Rohstoffe := TMenuItem.Create(MainMenu1);
MainMenu1.Items.Add(Rohstoffe); Rohstoffe.Caption := 'Rohstoffe'; for i := 0 to Stringliste.Count - 1 do begin RohEintraege[i] := TMenuItem.Create(Rohstoffe); Rohstoffe. Add(RohEintraege[i]); RohEintraege[i].Caption := Stringliste[i]; end; MfG freak |
Re: MainMenu - Prozeduren bei Items
Delphi-Quellcode:
So müsste das klappen
Rohstoffe := TMenuItem.Create(MainMenu1);
Rohstoffe.OnClick:=Procedurename; MainMenu1.Items.Add(Rohstoffe); |
Re: MainMenu - Prozeduren bei Items
Tut mir leid, das hilft mir nicht weiter. Wie mache ich damit weiter? :gruebel:
MfG freak |
Re: MainMenu - Prozeduren bei Items
Es kommt ganz darauf an, was du machen willst
Eine Prozedur zur Laufzeit erstellen ist nicht möglich. Wenn du das ganze dynamisch haben willst, könntest du gegebenenfalls DLLs nehmen Dieser Code
Delphi-Quellcode:
bestimmt jedenfalls, dass wenn auf das MenuItem Rohstoffe geklickt wird, dass die prozedur Procedurename (oder wie du sie auch nennen willst) aufgerufen wird.
Rohstoffe.OnClick:=Procedurename;
Dann musst du halt schauen, was du in der Prozedur tust. |
Re: MainMenu - Prozeduren bei Items
Also muss die Prozedur schon vorhanden sein, gut hab ich verstanden.
Also ich erstelle ja Unterpunkte zu "Rohstoffe". Nehmen wir mal in Stringliste Stehen Integerwerte. Dann wird, wenn ich auf Rohsoffe klicke eine Liste mit Zahlen nach unten aufgeklappt. Wenn ich jetzt auf die erste Zahl klicke soll eine Prozedur ausgeführt werden. Diese Prozedur soll 1 heißen.
Delphi-Quellcode:
Dann muss der Aufruf so aussehen?:
procedure eins;
begin ShowMessage('Sie haben die 1. Option gewählt.'); end;
Delphi-Quellcode:
Dann bekomm ich Folgenden Fehler:
RohEintraege[i].OnClick := eins;
Inkompatible Typen: Methodenzeiger und Reguläre Prozedur. Was mache ich falsch? MfG freak |
Re: MainMenu - Prozeduren bei Items
Delphi-Quellcode:
Dann noch:
Rohstoffe := TMenuItem.Create(MainMenu1);
MainMenu1.Items.Add(Rohstoffe); Rohstoffe.Caption := 'Rohstoffe'; for i := 0 to Stringliste.Count - 1 do begin RohEintraege[i] := TMenuItem.Create(Rohstoffe); RohEintraege[i].OnClick := Form1.Holz1Click; //Die Zeile ist neu Rohstoffe. Add(RohEintraege[i]); RohEintraege[i].Caption := Stringliste[i]; end;
Delphi-Quellcode:
und:
procedure TForm1.Holz1Click(Sender: TObject);
begin ShowMessage('Es klappt. *juhu*'); end;
Delphi-Quellcode:
Und das klappt. :gruebel:
TForm1 = class(TForm)
... procedure Holz1Click(Sender: TObject); Jetzt noch die Frage, wie man die Prozeduren dynamisch einfügt, also nicht alle Items auf die gleiche Prozedur zugreifen. :wall: Kann mir da einer weiterhelfen? MfG freak |
Re: MainMenu - Prozeduren bei Items
Problem gelöst. :wink:
Danke für die Hife. :cheers: MfG freak |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz