PDA

Ver la Versión Completa : Form Estatico


karlaoax
01-08-2007, 15:44:27
Hola a todos, tengo una duda. ¿Existira una propiedad que permita que mi form no se mueva de lugar al momento de querer arrastrarla con la barra de titulo de Windows?

Cuando el usuario la trate de mover, simplemente no pueda. ;)

Gracias, Karla

Neftali [Germán.Estévez]
01-08-2007, 17:00:41
Propiedad directamente no, puedes capturar los mensajes.

En la parte privada del formulario define:

//: Definimos el prcedimiento para capturar el mensaje
procedure _InternalNoMove(var Message: TWMChar); message WM_SYSCOMMAND;



Y en la implementación esto:


//: Definimos el prcedimiento para capturar el mensaje
procedure TForm1._InternalNoMove (var Message: TWMChar);
begin
// Mensajes que interceptamos...
if (Message.Charcode = SC_MOVE or HTCAPTION) or
(Message.Charcode = SC_MOVE) then begin
// No hacemos nada || Nothing to do
end
else begin
// Se deben procesar el resto de mensajes || Process messages normally
inherited;
end;
end;

karlaoax
01-08-2007, 18:19:05
Gracias Neftali, al rato checo el codigo, estoy con mucho trabajo ;) y si tengo dudas, posteo de nuevo. Karla

roman
01-08-2007, 18:34:53
Aquí hay otra forma:


DeleteMenu(GetSystemMenu(Handle, false), SC_MOVE, MF_BYCOMMAND);


que puede ponerse en el OnCreate del formulario.

Por cierto, Neftalí, ¿alguna razón para haber usado TWMChar en lugar de TWMSysCommand? :confused:

// Saludos

karlaoax
01-08-2007, 20:45:19
Listo ya cheque el codigo y ambos funcionan perfectamente.

Gracias Neftali y Roman por su tiempo.
Karla :p

Neftali [Germán.Estévez]
02-08-2007, 10:39:48
¿alguna razón para haber usado TWMChar en lugar de TWMSysCommand?

Pues no; Y no tiene mucho sentido...:o
El código es de un proyecto antiguo donde estuve haciendo pruebas con diferentes estilos de los formularios y cambiando propiedades.
O en su día cogí el código de algun sitio y estaba tal que así, o estuve haciendo pruebas y en algun Copy/Paste se quedó así la cabecera.
:confused::confused::confused: