![]() |
PopupMenu geht bei RichEdit 2 mal auf
Hallo,
ich wollte mir gestern bei einem meiner Programme in Delphi (ich verwende Borland Delphi 7 unter Windows ME) ein PopupMenu zu einem RichEdit hinzufügen. Prinzipiell funktioniert das auch, nur wenn ich in dem PopupMenu etwas auswähle geht es direkt danach an der gleichen Stelle nochmal auf. Das passiert aber nur wenn ich es zu einem RichEdit hinzufüge, bei einem Memo gehts z.B. Ich hab dann mal probiert ob das mit C++ auch passiert (Borland CBuilder 6) und da passiert genau das gleiche. Was könnte man denn machen, damit das nicht mehr passiert? |
Re: PopupMenu geht bei RichEdit 2 mal auf
Liste der Anhänge anzeigen (Anzahl: 1)
Herzlich willkommen in der Delphi-PRAXiS, cruzer.
Vielleicht liegt es an der Art, wie du mit dem PopupMenu umgehst? Wenn das Phänomen auch mit meinem Beispiel-Projekt auftritt, dann kann ich dir nicht helfen. Freundliche Grüße |
Re: PopupMenu geht bei RichEdit 2 mal auf
Wie hast du das PopupMenü denn hinzugefügt.
Ich habe es beim RichEdit über das Ereignis vom RE namens PopupMenu auf mein PopupMenü gesetzt und bei mir funzt alles. Gruß Stefan |
Re: PopupMenu geht bei RichEdit 2 mal auf
Hi, erstmal danke für die Antworten.
Ich habe es mit dem Objektinspektor zum RichEdit hinzugefügt. Da gibts ja extra nen Punkt namens "PopupMenu". Zu dem Programm von marabu: Es geht nicht 2 Mal auf. Wenn ich allerdings das
Delphi-Quellcode:
z.B durch
ShowMessage(Hint)
Delphi-Quellcode:
ersetze, tritt der Fehler wieder auf.
RichEdit.Text := '...'
Als Übergangslösung hab ich das Problem umgangen, indem ich das PopupMenu zerstöre (oder wie man da sagt) und es dann neu erschaffe. Also so:
Delphi-Quellcode:
procedure TForm1.Ausschneiden1Click(Sender: TObject);
begin PopupMenu1.Destroy; PopupMenu1 := TPopupMenu.Create(self); Ausschneiden3 := TMenuItem.Create(self); Ausschneiden3.Caption := 'Ausschneiden'; Ausschneiden3.OnClick := Ausschneiden1Click; PopupMenu1.Items.Insert(0,Ausschneiden3); Kopieren3 := TMenuItem.Create(self); Kopieren3.Caption := 'Kopieren'; Kopieren3.OnClick := Kopieren1Click; PopupMenu1.Items.Insert(1,Kopieren3); Einfgen3 := TMenuItem.Create(self); Einfgen3.Caption := 'Einfügen'; Einfgen3.OnClick := Einfgen1Click; PopupMenu1.Items.Insert(2,Einfgen3); RichEdit1.PopupMenu := PopupMenu1; RichEdit1.CutToClipboard; end; procedure TForm1.Kopieren1Click(Sender: TObject); begin PopupMenu1.Destroy; PopupMenu1 := TPopupMenu.Create(self); Ausschneiden3 := TMenuItem.Create(self); Ausschneiden3.Caption := 'Ausschneiden'; Ausschneiden3.OnClick := Ausschneiden1Click; PopupMenu1.Items.Insert(0,Ausschneiden3); Kopieren3 := TMenuItem.Create(self); Kopieren3.Caption := 'Kopieren'; Kopieren3.OnClick := Kopieren1Click; PopupMenu1.Items.Insert(1,Kopieren3); Einfgen3 := TMenuItem.Create(self); Einfgen3.Caption := 'Einfügen'; Einfgen3.OnClick := Einfgen1Click; PopupMenu1.Items.Insert(2,Einfgen3); RichEdit1.PopupMenu := PopupMenu1; RichEdit1.CopyToClipboard; end; procedure TForm1.Einfgen1Click(Sender: TObject); begin PopupMenu1.Destroy; PopupMenu1 := TPopupMenu.Create(self); Ausschneiden3 := TMenuItem.Create(self); Ausschneiden3.Caption := 'Ausschneiden'; Ausschneiden3.OnClick := Ausschneiden1Click; PopupMenu1.Items.Insert(0,Ausschneiden3); Kopieren3 := TMenuItem.Create(self); Kopieren3.Caption := 'Kopieren'; Kopieren3.OnClick := Kopieren1Click; PopupMenu1.Items.Insert(1,Kopieren3); Einfgen3 := TMenuItem.Create(self); Einfgen3.Caption := 'Einfügen'; Einfgen3.OnClick := Einfgen1Click; PopupMenu1.Items.Insert(2,Einfgen3); RichEdit1.PopupMenu := PopupMenu1; RichEdit1.PasteFromClipboard; end; |
Re: PopupMenu geht bei RichEdit 2 mal auf
Hab ne bessere Lösung gefunden.
Jetzt ist das PopupMenu nicht mehr beim RichEdit hinzugefügt sondern ich fange einfach den Rechtsklick ab und machs dann auf.
Delphi-Quellcode:
procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if ssRight in Shift then PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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