Comment intercepter le WM_PASTE dans un TRichEdit ?
J'ai essayé de passer par une WindowProc :
Mais, il n'entre même pas dans le premier if, comme si ce message n'était utilisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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 ?
Partager