Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#22
  Alt 6. Mai 2003, 08:31
Hallo,
mit folgendem Source sollte das Kopieren aus einem Memo nicht mehr möglich sein.
Delphi-Quellcode:
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.
  Mit Zitat antworten Zitat