PDA

Ver la Versión Completa : No poder copiar texto de un memo


FDB
31-08-2008, 00:08:52
Buenas,

Antes de nada saludar a todos los foreros.

Estuve mirando a ver si encontraba alguna forma de que no se pudiese copiar el texto de un memo, de una forma que no sea modificando enabled, porque me da igual que se pueda escribir en el o no, que se pueda hacer lo que sea pero que se pueda usar las barras de desplazamiento para poderlo leer.
Pero no sacar el texto del memo a no ser que sea a pantallazos o copiandolo a mano :rolleyes:

Un saludo!.

seoane
31-08-2008, 00:20:40
Asi, de repente, se me ocurre que interceptes el mensaje WM_COPY y WM_CUT. Algo así:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
OldWindowProc: TWndMethod;
procedure NoCopy(var Msg: TMessage);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
OldWindowProc:= Memo1.WindowProc;
Memo1.WindowProc:= NoCopy;
end;

procedure TForm1.NoCopy(var Msg: TMessage);
begin
if not((Msg.Msg = WM_COPY) or (Msg.Msg = WM_CUT)) then
OldWindowProc(Msg);
end;

end.

FDB
31-08-2008, 00:40:45
Buenas de nuevo,

Acabo de probar lo que me dijiste seoane y funciona perfectamente.

Muchas gracias.

Disculpad las molestias.

Un saludo.