![]() |
PopupMenü zur Laufzeit
Hallo Leute
Wie erstelle Ich zur Laufzeit ein PopUpMenu für RichEdit ? Hab schon die Suche bemüht und schon einiges probiert aber es klappt nicht so recht. Vieleicht hatt das ja schon wer von Euch getan und kann Mir mal ein paar Tips dazu geben.
Delphi-Quellcode:
RE:=TPopUpMenu.Create(RichEdit1);
RE.Name:='Test'; RE.Items.Caption:='Test'; |
Re: PopupMenü zur Laufzeit
Delphi-Quellcode:
Sollte selbst erklärend sein.
type
TForm1 = class(TForm) RichEdit1: TRichEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } popRTF: TPopupMenu; procedure OnMenuItemClick(Sender: TObject); public { Public declarations } end; var Form1 : TForm1; implementation {$R *.dfm} procedure TForm1.OnMenuItemClick(Sender: TObject); begin case TMenuItem(Sender).Tag of 0: ShowMessage(TMenuItem(Sender).Caption); 1: ShowMessage(TMenuItem(Sender).Caption); 2: ShowMessage(TMenuItem(Sender).Caption); end; end; procedure TForm1.Button1Click(Sender: TObject); var mi : TMenuItem; begin popRTF := TPopupMenu.Create(Form1); mi := TMenuItem.Create(Form1); mi.Caption := 'Item0'; mi.Tag := 0; mi.OnClick := OnMenuItemClick; popRtf.Items.Add(mi); mi := TMenuItem.Create(Form1); mi.Caption := 'Item1'; mi.Tag := 1; mi.OnClick := OnMenuItemClick; popRtf.Items.Add(mi); mi := TMenuItem.Create(Form1); mi.Caption := 'Item2'; mi.Tag := 2; mi.OnClick := OnMenuItemClick; popRtf.Items.Add(mi); RichEdit1.PopupMenu := popRTF; end; |
Re: PopupMenü zur Laufzeit
Danke Luckie, jetzt wo Ich es seh TMenuItem aber manchmal hatt man ein Brett vorm Kopf.
Wollte mal versuchen Mir eine Unit zu schreiben für ein Standard PopUp für RichEdit, mal schauen. Nochmals vielen Dank. |
Re: PopupMenü zur Laufzeit
Hallo,
bei Luckies Code kannst du dir die Zuweisung von TMenuItem.Tag sogar noch sparen folgendes reicht aus:
Delphi-Quellcode:
procedure TForm1.OnMenuItemClick(Sender: TObject);
begin if (Sender is TMenuItem) then ShowMessage((Sender as TMenuItem).Caption); (*case TMenuItem(Sender).Tag of 0: ShowMessage(TMenuItem(Sender).Caption); 1: ShowMessage(TMenuItem(Sender).Caption); 2: ShowMessage(TMenuItem(Sender).Caption); end;*) end; |
Re: PopupMenü zur Laufzeit
Aber nicht, wenn er für jeden Eintrag im Menü etwas anderes ausführen will und das wird wohl der Fall sein. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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