Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TPZBtn (https://www.clubdelphi.com/foros/showthread.php?t=67540)

PabloZZZ 22-04-2010 02:33:22

TPZBtn
 
Amigos.

Estoy haciendo un boton,

TPZBtn = class( TWinControl )

El mismo tiene 4 TPictures, Up, Down, Focus y Disabled.

Cómo hago para asignar el bitmap del TPicture cuando el control toma el foco???

(asignar es FPicture.Picture.Assign( FPictureFocus ), pero no logro detectar cuando el boton toma el foco o deja de estar Enabled)

Saludos
Pablo Z

Neftali [Germán.Estévez] 22-04-2010 10:25:59

Cita:

Empezado por PabloZZZ (Mensaje 361491)
... pero no logro detectar cuando el boton toma el foco o deja de estar Enabled)

Lo más fácil es capturar en tu componente los mensajes de windows correspondientes al entrar y salir del componente.

Revisa esta página. Ahí se explica de forma detallada cómo capturar los mensajes y añadirlos a un componente. Si buscas en los foros, también encontrarás información similar. Ya hemos hablado otras veces del tema (1, 2).

PabloZZZ 22-04-2010 17:08:02

Cita:

Empezado por Neftali (Mensaje 361508)
Lo más fácil es capturar en tu componente los mensajes de windows correspondientes al entrar y salir del componente.

Revisa esta página. Ahí se explica de forma detallada cómo capturar los mensajes y añadirlos a un componente. Si buscas en los foros, también encontrarás información similar. Ya hemos hablado otras veces del tema (1, 2).

Buenisimo!
Sobreescribí:

procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
procedure WMKillFocus(var Message: TWMSetFocus); message WM_KILLFOCUS;

para que muestren el TPicture correspondiente y funcionó.

Ahora estoy viendo cómo hacer que pueda tomar el foco al navegar con la tecla TAB

Z

Neftali [Germán.Estévez] 22-04-2010 18:54:41

Cita:

Empezado por PabloZZZ (Mensaje 361544)

Ahora estoy viendo cómo hacer que pueda tomar el foco al navegar con la tecla TAB

Esto no lo entedí. ¿Puedes explicarlo? Normalmente los componentes ya "pasan" el foco cuando pulsas el TAB.

PabloZZZ 22-04-2010 18:58:40

Cita:

Empezado por Neftali (Mensaje 361570)
Esto no lo entedí. ¿Puedes explicarlo? Normalmente los componentes ya "pasan" el foco cuando pulsas el TAB.

Si... no se por qué tenian el tabstop en false...
Está quedando muy lindo...

Ahora me falta Capturar el click del mouse para cambiar el estado a down...

hice:
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP;

y en el create le puse
ControlStyle := [csCaptureMouse, csClickEvents];

pero no entra en el evento :( :(
probé tambien hacerlo heredar de TButtonControl, pero no logro colgarme del mouse left button down

Z


La franja horaria es GMT +2. Ahora son las 19:56:42.

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