Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Memo - STRG+V deaktivieren

  Alt 27. Jan 2008, 12:29
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;
Thomas
  Mit Zitat antworten Zitat