Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Lepe
Retiro todo lo dicho, con este método tambien pasa lo mencionado por roman
Así es. No sucede si DragFullWindows está activo pero sí en el otro caso. Quizá podrías corregir un poco lidiando también con WM_MOVING, que es el que se encarga del dibujado de la silueta, pero entonces ya la cuestión se complica más de la cuenta.

A final de cuentas, para mover una ventana hay muchos pasos involucrados:

WM_NCHITTEST, WM_ENTERSIZEMOVE, WM_MOVING, WM_EXITSIZEMOVE, WM_MOVE, WM_WINDOWPOSCHANGING, WM_WINDOWPOSCHANGED

y uno puede intentar frenar los necesarios. Pero al quitar el comando SC_MOVE te evitas todo esto, simplemente le dices: está prohibido mover.

En cuanto a lo de maximizar la ventana pues esto lo puedes evitar quitando biMaximize de la propiedad BorderIcons.

Si además se desea evitar que se cambie el tamaño de la ventana, se puede añadir:

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

aunque en este caso también hay que trabajar WM_NCHITTEST para que el cursor del ratón no cambie de forma cuando se coloca sobre los bordes:

Código Delphi [-]
inherited;

if Msg.Result in [HTSIZEFIRST..HTSIZELAST] then
  Msg.Result := Windows.HTNOWHERE;

// Saludos
Responder Con Cita
  #2  
Antiguo 06-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El método tiene un problema que antes no había visto:

Si se quitan todos los iconos de la barra de título, entonces la ventana ya se puede mover. Veremos si se puede solucionar esto.

// Saludos
Responder Con Cita
  #3  
Antiguo 06-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Nada como quitar la barra de titulo, y como mucho, hacer una con un panel y 3 botones.

Ya no tenemos que atar de pies y manos, simplemente se las cortamos

Un saludo
Responder Con Cita
  #4  
Antiguo 06-10-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 23
yusnerqui Va por buen camino
Hola

Bueno, posteo para insistir en mi método de capturar el mousedown en la zona no cliente(WM_NCLBUTTONDOWN), y no hacer nada en el caso de que esté sobre el caption:

Código Delphi [-]
  if Message.wParam  <> HTCAPTION   then
      inherited;

creo que esto acompañado de lo propuesto por roman para borrar la opción de mover en el menu:

Código Delphi [-]
  DeleteMenu(GetSystemMenu(Handle, false), SC_MOVE, MF_BYCOMMAND);

impide cualquier movimiento de la forma, independientemente de que tenga botones o no.

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #5  
Antiguo 06-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por yusnerqui
Bueno, posteo para insistir en mi método de capturar el mousedown en la zona no cliente(WM_NCLBUTTONDOWN), y no hacer nada en el caso de que esté sobre el caption
Sí. Parece ser un buen complemento para cuando no hay ningún botón. Nada más observar que con ello se impide cualquier tipo de actividad en la barra de título. Si se desea tener todavía opciones del menú activas, entonces tu método sería demasiado restrictivo.

// Saludos
Responder Con Cita
  #6  
Antiguo 06-10-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 23
yusnerqui Va por buen camino
Lo probaste??

Cita:
Empezado por Roman
Nada más observar que con ello se impide cualquier tipo de actividad en la barra de título.
No entiendo, en el ejemplo que tengo me permite accionar sobre los botones de maximizar, cerrar etc.

Cita:
Empezado por Roman
Si se desea tener todavía opciones del menú activas, entonces tu método sería demasiado restrictivo.
Lo dicho, puedo desplegar también el menu sin ningún tipo de problemas.



Edito:
Ampliando un poco más la respuesta puedo decir que al especificar que la acción sea controlada solo sobre el caption, especificando (HTCAPTION), evito que se inhabiliten otras zonas no cliente como el menú sistema (HTSYSMENU), el botón de maximizar (HTMAXBUTTON), el de minimizar (HTMINBUTTON) entre otros.


Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo


Última edición por yusnerqui fecha: 06-10-2005 a las 19:53:18. Razón: Ampliar la respuesta
Responder Con Cita
  #7  
Antiguo 06-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Tienes razón yusnerqui, disculpa. Me quedé pensando en el ejemplo de Marcos del otro hilo.

// Saludos
Responder Con Cita
  #8  
Antiguo 06-10-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 23
yusnerqui Va por buen camino
Cita:
Empezado por Roman
Tienes razón yusnerqui, disculpa.
No hay nada que disculpar maestro, en todo caso me corresponde agradecerte a ti y al foro por las cosas que me han enseñado.

un abrazo
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:41:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi