![]() |
WndProc beim Richedit
Moin,
Ich habe mal wieder ein Problem ;) Ich versuche die WM_Paste Message bei einem Richedit abzufangen um dann dort etwaige Zeichen (Zeilenumbrüche in diesem Fall und gesonderte Textformatierungen) zu entfernen und den Text dann "per Hand" einzufügen. Nur habe ich ein Problem: Die WM_PASTE Message wird scheinbar niemals geschickt? In dem Code kann ich keinen Fehler entdecken und der Hook funktioniert auch (Breakpoints auf alle anderen Messages, die an die alte WndProc gehen, werden erfolgreich weitergeleitet). Hook:
Delphi-Quellcode:
Hook-Setzen (im OnCreate der Form)
procedure TFrmAddEntry.NewLang2WndProc(var Message: TMessage);
var lHandle: THandle; lText: WideString; begin if Message.Msg = WM_PASTE then begin if IsClipboardFormatAvailable(CF_UNICODETEXT) then begin OpenClipBoard(redtLanguage2.Handle); try lHandle := GetClipboardData(CF_UNICODETEXT); if lHandle <> 0 then begin lText := WideString(GlobalLock(lHandle)); GlobalUnlock(lHandle); lText := Tnt_WideStringReplace(lText, #13, '', [rfReplaceAll]); lText := Tnt_WideStringReplace(lText, #10, '', [rfReplaceAll]); redtLanguage2.SelText := ''; end; finally CloseClipBoard; end; end; end else begin OldLang2WndProc(Message); end; end;
Delphi-Quellcode:
Wie kann das sein? Verhält sich das Richedit hier anders?
OldLang2WndProc := redtLanguage2.WindowProc;
redtLanguage2.WindowProc := NewLang2WndProc; Weder MSDN noch DP-Suche konnten mir wirklich weiterhelfen. Danke & Grüße, Max |
Re: WndProc beim Richedit
|
Re: WndProc beim Richedit
Moin,
Sehr schön, hat perfekt funktioniert. Danke! :-D Grüße, Max |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz