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
ShowMessage(Hint)
z.B durch
RichEdit.Text := '...'
ersetze, tritt der Fehler wieder auf.
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;