Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
Delphi XE2 Professional
|
AW: Problem beim OnKeyDown
2. Nov 2017, 12:27
Ich kenne TWPRichText nicht, nehme aber an, dass das im Wesentlichen wie ein TRichEdit funktioniert.
Bei mir ist es so:
Wenn im OnKeyDown Key=0 gesetzt wird, werden Enter, Cursortasten etc. unterdrückt, "normale" Tasten nicht.
Wenn im OnKeyPress Key=#0 gesetzt wird, ist es genau umgekehrt, d.h. "normale" Tasten werden unterdrückt, Enter etc. nicht.
Da Du Key=#0 setzt, nehme ich an, dass Dein Code im OnKeyPress steht und nicht im OnKeyDown wie der Titel des Threads suggeriert.
Was mir sonst noch auffiel:
Du prüfst nicht, ob Feldinhalt überhaupt im Text enthalten ist.
Wenn das Pos(Feldinhalt,RichEdit.Text) 0 ergibt, sollte eine Exit erfolgen.
Ich habe Zweifel ob die mit Pos(,,,) und SelStart ermittelten Positionen korrespondieren.
Bei RichEdit.Text werden Zeilenumbrüche als #13 #10 dargestellt also 2 Zeichen.
Bei SelStart scheint es so zu sein, dass Zeilenumbrüche als ein Zeichen behandelt werden.
Das führt dazu, dass die mit Pos(Feldinhalt,RichEdit.Text) ermittelte Position von der mit RichEdit.SelStart ermittelten Position abweicht, und zwar um die Anzahl der Zeilenumbrüche vor der Fundstelle. (Das ganze natürlich nur wenn der Cursor an der Fundstelle steht).
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
|