Ich erstelle zur Laufzeit Instanzen einer Klasse.
Dabei wird für jede Instanz im MainMenü ein Eintrag angelegt.
Wenn der Benutzer diesen Eintrag im Menü clickt, soll ein Fenster aufgehen, in dem die Wert der Instanz angezeigt werden sollen.
Bisher sieht es so aus:
Delphi-Quellcode:
neuesItem := TMenuItem.Create(Self);
neuesItem.Name := neuInstanz.Name;
neuesItem.Caption := 'Instanz '+zmWerte[0];
neuesITem.OnClick := InstanzEigClick;
HotelForm.Instanzen.Add(neuesItem);
- neuesItem ist der neue Eintrag.
- er bekommt den selben Namen, wie die Instanz
- onClick bekommt folgende prozedur zu gewiesen...
Delphi-Quellcode:
procedure THotelForm.InstanzEigClick(Sender: TObject);
var InstanzName : ShortString;
InstanzObj : TKlasse;
begin
InstanzName := (Sender as TMenuItem).Name;
InstanzObj := TKlasse(FindComponent(InstanzName));
InstanzAnzeigenForm.wertsetzen(InstanzObj);
InstanzAnzeigenForm.ShowModal;
end;
- InstanzName soll der Name der des Items zugewiesen werden = Name der Instanz
- dann wird nach der Instanz gesucht und InstanzObj zugewiesen
- wertsetzen bewirkt, das die Edits im AnzeigenForm mit den Werten der Instanz belegt werden
- dann soll das Formular mit den werten angezeigt werden
Leider klappt dies nicht!!!
Der Compiler meckert zwar nicht - aber die Edits im Formular haben unmögliche Werte, nur nicht die, die es haben soll!
Was habe ich falsch gemacht?
Gibt es eine andere Möglichkeit?
Wie kann ich einem MenüItem zur Laufzeit sagen, was passiert, wenn jemand drauf klickt und kann gleichzeitig Werte mit übergeben?