Einzelnen Beitrag anzeigen

cruzer

Registriert seit: 30. Aug 2006
Ort: Aalen
3 Beiträge
 
Delphi 7 Personal
 
#4

Re: PopupMenu geht bei RichEdit 2 mal auf

  Alt 9. Jul 2007, 13:00
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;
  Mit Zitat antworten Zitat