RichMan - Di 09.07.02 15:05
Titel: String als TPopupMenu.Name interpretieren
Guden Leutz!
Schaut euch mal folgenden Quelltext an:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TfrmHaupt.OnButtonClick(Sender: TObject); var Popup: String; begin
// Name des anzusprechenden Popup-Menüs generieren Popup := 'Popup'+IntToStr((Sender as TSpeedButton).Tag); // Popup-Menü bei x,y = 30,30 aufklappen (Popup as TPopupMenu).Popup(30,30);
end; |
Leider funzt das so nicht. Also um es nochmal zu beschreiben: Ich habe einige Popup-Menüs und einige SpeedButtons auf der Form. Je nachdem welcher der Buttons angeklickt wird, soll ein Popup-Menü aufgeklappt werden. Der Name des aufzuklappenden Popup-Menüs richtet sich nach dem Tag des SpeedButtons und wird folglich auch daraus generiert ("Popup" + Tag des Speedbuttons = aufzuklappendes Menü). Wie realisiere ich nun, dass der String der in Popup steckt, als TPopupMenu-Name gesehn wird und somit mit der Anweisung Popup(x,y) aufgeklappt werden kann?
Gruß,
RichMan
Tino - Di 09.07.02 15:11
So geht es natürlich nicht... haste ja selbst festgestellt!
Mit der Funktion
FindComponent hat man die Möglichkeit über den Namen die entspr. Komponente zu bekommen.
So müsste Dein Code dann aussehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TfrmHaupt.OnButtonClick(Sender: TObject); var PopupName: String; Popup: tComponent; begin // Name des anzusprechenden Popup-Menüs generieren PopupName := 'Popup'+IntToStr((Sender as TSpeedButton).Tag);
Popup := FindComponent (PopupName);
If Assign (Popup) Then // Popup-Menü bei x,y = 30,30 aufklappen (Popup as TPopupMenu).Popup(30,30); end; |
Gruß
TINO
PS: Den Code habe ich nicht getestet!