PDA

Ver la Versión Completa : Problema al cambiar de foco con intro.


BECERRA
18-06-2003, 18:36:26
Hola amigos, ¿sabría decirme alguien porque al ejecutar este código en el onkeypress de un form el speaker del pc emite un pitido?, es algo muy extraño.
Esta función cambia el foco cada vez que pulso la tecla intro siempre y cuando no este posicionado en un botón. Por lo tanto resulta bastante pesado escuchar el pitido en cada acción.


if (Fprincipal.ActiveMDIChild.ActiveControl.classname <> 'TBitbtn') and (Fprincipal.ActiveMDIChild.ActiveControl.classname <> 'TButton') and (Fprincipal.ActiveMDIChild.ActiveControl.classname <> 'SpeedButton') and (key=#13) then perform(WM_NEXTDLGCTL,0,0);

delphi.com.ar
18-06-2003, 18:43:34
Asíngale #0 al Key!

Bacterion
19-06-2003, 12:53:21
ya de paso, para conocer si el control es un boton o lo que toque, ¿porqué comoparas por el nombre disponiendo del tipo?

(Fprincipal.ActiveMDIChild.ActiveControl.classname <> 'TButton')

se puede sustituir por
(Fprincipal.ActiveMDIChild.ActiveControl is TButton)
con lo que encima funcionará para cualquier componente que herede de TButton. Y si te pones a refinar un poco más (la herencia sirve para muchas cosas)...
Resulta que TBitBtn y TButton heredan de TButtonControl con lo que eliminas una de las condiciones...
...y resulta que SpeedButton no existe como clase. Sí TSpeedButton.