|
Impidiendo que el usuario seleccione texto en un control Memo
Copyright © 2000 Ernesto
De Spirito
La forma más sencilla sería establecer la propiedad Enabled del
control Memo (o Edit) en False para
que el control no pueda recibir eventos, pero esto tiene la contra que
primero el usuario no puede hacer scroll y segundo que el texto
inhabilitado se ve mal.
Para impedir que el usario pueda escribir en el memo,
asginamos True a su propiedad ReadOnly.
Para que el usuario no pueda seleccionar texto con el ratón, generamos
el manejador del evento MouseMove del control y escribimos
el siguiente código:
procedure TForm1.Memo1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then
Memo1.SelLength := 0;
end;
Para impedir que el usuario pueda hacer una selección usando el
teclado, generamos los manejadores de los
eventos KeyDown y KeyUp asignando las
propiedades OnKeyDown y OnKeyUp al mismo
procedimiento:
procedure TForm1.Memo1KeyDownUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if (ssShift in Shift) and (Key in [VK_LEFT, VK_RIGHT, VK_UP,
VK_DOWN, VK_PRIOR, VK_NEXT, VK_HOME, VK_END]) then
Key := 0;
end;
|