[D2010] Intercepter le WM_PASTE dans un TRichEdit
Comment intercepter le WM_PASTE dans un TRichEdit ?
J'ai essayé de passer par une WindowProc :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| procedure TForm1.RichEditProc(var Msg: TMessage);
begin
if Msg.Msg = WM_PASTE then
begin
if IsClipboardFormatAvailable(CF_UNICODETEXT) then
begin
Label1.Caption := ClipBoard.AsText;
Exit;
end;
end;
_OldRichEditProc(Msg);
end; |
Mais, il n'entre même pas dans le premier if, comme si ce message n'était utilisé.
J'ai essayé d'utiliser un TApplicationEvents. Mais, le message WM_PASTE ne passe jamais.
J'ai essayé de traquer tous les messages qui passent pour essayer de deviner lequel serait le bon.
J'obtiens : 15, 275, 675, 513, 514, 512, 280.
Si je converti en hexadécimal et que je cherche dans l'unité Messages, ça donne : WM_PAINT, WM_TIMER, WM_MOUSELEAVE, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE.
Le seul qui n'a pas de correspondance, c'est le 280 (donc 118 en hexadécimal). Ce lien (http://social.msdn.microsoft.com/for...9-f5a0ed0d2e0a) a l'air de dire que ce serait WM_SYSTIMER.
Donc, je ne vois rien qui ressemblerait à un WM_PASTE.
Comment faire ?
:hola: