Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Personalizar bordes (https://www.clubdelphi.com/foros/showthread.php?t=26578)

piccolo2101 27-10-2005 13:24:05

Personalizar bordes
 
Hola,

me gustaría saber como podría personalizar el fromato de las ventanas. En concreto me gustaría saber como puedo poner una imagen en la región de caption y cambiar los botones de minimizar,maximizar... por botones o imágenes mías. Por ahora lo intento con WMNCHitTest pero al poner msg.result := HTClose o HTMAXBUTTON... se ve como si presionara el boton pero no reacciona.

Un saludo y gracias.

Neftali [Germán.Estévez] 27-10-2005 13:43:03

Seguramente tendrás que capturar más de uno;
Se me ocurren por ejemplo, WM_SIZE para detectar cambios en el tamaño y redimensionar la imagen, WM_NCPAINT para "pintar" el nuevo caption y los botones, WM_NCLBUTTONDOWN y WM_NCLBUTTONUP y WM_NCLBUTTONDBLCLK para detectar los diferentes clicks de ratón,... para detectar la pulsación en tus botones de título... y seguro, seguro que me dejo algunos.

Échale un vistazo a éstos componentes:
http://www.torry.net/quicksearchd.ph...tion&Title=Yes

piccolo2101 27-10-2005 14:38:55

Hola,

muchas gracias por tu respuesta. He estado investigando sobre lo que me dijiste y he encontrado muchísima información pero lo que yo quiero hacer es algo mas sencillo y parece que no funciona. Por ahora quiero que si hago click en cualquier parte de mi aplicación esta se cierre como si le dieras al boton X.

procedure TForm1.WMNCHitTest(var Msg:TMessage);
begin
// msg.result := HTCAPTION;
// msg.result := HTMAXBUTTON;
msg.result := HTCLOSE;
// msg.result := HTMINBUTTON;
end;

Esto es lo que he puesto en mi formulario para hacer tambien pruebas sobre maximizar y minimizar. La idea es que cuando eso funcione asociar este evento segun la región de click a una acción donde cada región será una imegen en la zona client del formulario.

Nuevamente gracias.

roman 27-10-2005 17:05:50

Cita:

Empezado por Neftali
WM_MAXHIT, WM_CLOSEHIT,... para detectar la pulsación en tus botones de título

¿Y éstos? ¿Existen?


Cita:

Empezado por piccolo2101
Por ahora quiero que si hago click en cualquier parte de mi aplicación esta se cierre como si le dieras al boton X

No estoy muy seguro de que WM_NCHITTEST sea el mensaje adecuado. Este mensaje no se involucra con clicks del ratón, únicamente con la parte de la ventana en donde está el ratón.

Quizá podrías más bien usar el método Close en los mensajes WM_LBUTTONDOWN y WM_NCLBUTTONDOWN.

// Saludos

Neftali [Germán.Estévez] 27-10-2005 18:07:24

Cita:

Empezado por roman
¿Y éstos? ¿Existen?

Claramente no, se me fue la mano con unas pruebas que estaba haciendo.
Voy a eliminarlos del mensaje anterior para que nadie se "pase un rato buscándolos".


La franja horaria es GMT +2. Ahora son las 09:32:38.

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