Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TRichEdit, Kopieren per Strg+c und Drag & Drop verhinder


Somi - So 15.12.02 15:40
Titel: TRichEdit, Kopieren per Strg+c und Drag & Drop verhinder
Hallo zusammen,

im TRichEdit sollen weiterhin alle Eingaben gemacht werden können, außer das Kopieren per Strg+c. So klappt es leider nicht:

Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; 
Shift: TShiftState); 
begin 
  if (Form1.RichEditVorschau.Focused)=true then 
  begin
    if (Shift=[ssCtrl]) and (Key=67) then Key:= 0;
  end;

Auch das Kopieren per Drag & Drop z.B. nach Word funktioiniert noch.
Wie stelle ich beides ab?? :cry:

Danke schon mal im voraus für Tipps! :D

(16.12 09:03 Tino) Code-Tags hinzugefügt.


CenBells - So 15.12.02 23:24

moin,

weiß jetzt zwar nicht mehr so genau. aber ich glaube, du solltest das nicht auf dem form machen, sondern direkt auf dem richedit die onkeydown methode verwenden...

gruß
Ken


Somi - Mo 16.12.02 21:04
Titel: Noch keine Lösung...
Danke Ireniceus, leider macht es keinen Unterschied, ob die Ereignisse aus dem Form1 oder aus dem Richedit genommen werden.

KeyDown schein schon mal grundsätzlich nicht auf Strg+C zu reagieren.
KeyUp schon eher, aber dann braucht ja nur meine Anwendung den Focus zu verlieren und schon bemerkt sie das KeyUp nicht mehr und der Text ist Kopiert.

Wer weiß weiter??


Anonymous - Di 17.12.02 08:39

Hei!

Ich weiss zwar nicht obs beim RichEdit genauso ist, aber beim Memo hab ichs (extra für dich in geändeter Form!) so gemacht:

Quelltext
1:
2:
3:
4:
5:
procedure TForm1.KlartextKeyDown(Sender: TObject; var GedrueckteTaste: Word; SpezialTasten: TShiftState);
begin
 if (GedrueckteTaste in [vk_Control]) or (ssCtrl in SpezialTasten) then GedrueckteTaste := 0;
 {Wird eine Pfeiltasten, Pos1, BilbAuf oder BildAb, Shift, Alt oder Steuerung gedrückt, wird sie nicht behandelt}
end;
Damit wird schon mal das Strg unterbunden ...

Musst mal gucken, ob das schon reicht, oder ob du noch if (GedrueckteTaste in [vk_Control], 67) benötigt wird. Ich weiss aber nicht, ob das so funzt!


Somi - Do 09.01.03 21:46

Dankeschööön für die Tipps!
Die Sache funktioniert nur über das definieren eines Hotkeys!

Dann bis die Tage, ich komme wieder, keine Frage!