AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PopupMenu geht bei RichEdit 2 mal auf

Ein Thema von cruzer · begonnen am 8. Jul 2007 · letzter Beitrag vom 9. Jul 2007
Antwort Antwort
cruzer

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

PopupMenu geht bei RichEdit 2 mal auf

  Alt 8. Jul 2007, 18:38
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?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: PopupMenu geht bei RichEdit 2 mal auf

  Alt 9. Jul 2007, 07:37
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
Angehängte Dateien
Dateityp: zip re-popup_129.zip (1,8 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: PopupMenu geht bei RichEdit 2 mal auf

  Alt 9. Jul 2007, 09:25
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
  Mit Zitat antworten Zitat
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
cruzer

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

Re: PopupMenu geht bei RichEdit 2 mal auf

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


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz