Zitat von
SirThornberry:
ich würde sagen du kommst am besten wenn du die Window-message einfach abfängst
Zitat:
Wie mach ich das genau?
Hallo, wenn du keine neue Komponente erstellen möchtest, dann führst du ein
"Subclassing" durch. Und dann kannst du die entsprechende(n) Nachricht(en) abfangen
und den Text filtern, bevor er effektiv ins Memo eingefügt wird.
Delphi-Quellcode:
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
FOldMemoProc: TWndMethod;
protected
procedure MemoWndProc(var Message: TMessage);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.MemoWndProc(var Message: TMessage);
begin
if (Message.Msg = WM_PASTE) then
begin
Message.Result := 1;
// Hier text manuell filtern mit
(* if ClipBoard.HasFormat(CF_TEXT) then
begin
ClipBoard.Open;
try
// hier: Clipboard auslesen, filtern, Text im Memo setzen
ClipBoard.Close;
end;
*)
end else
FOldMemoProc(Message);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FOldMemoProc := Memo1.WindowProc;
Memo1.WindowProc := MemoWndProc;
end;