unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ClipBrd, AppEvnts;
type
TForm1 =
class(TForm)
Memo1: TMemo;
ApplicationEvents1: TApplicationEvents;
procedure ApplicationEvents1Deactivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Memo1Exit(Sender: TObject);
private
{ Private-Deklarationen }
FWndProc : TWndMethod;
procedure MemoWndProc(
var Msg: TMessage);
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ApplicationEvents1Deactivate(Sender: TObject);
begin
ClipBoard.Clear;
// Anwendungsübergreifendes kopieren verhindern
end;
procedure TForm1.MemoWndProc(
var Msg: TMessage);
begin
if Msg.Msg = WM_GETTEXT
then
begin
Msg.Result := 1;
end
else FWndProc(Msg);
// alte Fensterproceure aufrufen
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FWndProc := Memo1.WindowProc;
// alte Fensterproceure merken
Memo1.WindowProc := MemoWndProc;
// Fensterproceure auf eigene Fensterprocedure umbiegen
end;
procedure TForm1.Memo1Exit(Sender: TObject);
begin
ClipBoard.Clear;
// Anwendungsinternes kopieren verhindern
end;
end.