Muy buenas, ¿alguien me podría decir como puedo saber cuando dejo de pasar el raton por encima de un DIALOG NOWAIT, es decir, cuando se sale del dialogo?
uN sALUDO.
Perder foco en Dialogo
Re: Perder foco en Dialogo
Hola,
Si no entendí mal, creo que lo que necesitas es:
Saludos.
Rolando
Si no entendí mal, creo que lo que necesitas es:
Code: Select all | Expand
oDlg:bLostFocus:={||TuFuncion()}
Saludos.
Rolando
Re: Perder foco en Dialogo
No funciona el bLostFocus, ya que tiene el NOWAIT
¿Sabeis otra posible solución?
Gracias por contestar.
¿Sabeis otra posible solución?
Gracias por contestar.
Re: Perder foco en Dialogo
Hola,
En realidad no entiendo bién lo que quieres hacer. Tengo un sistema hecho con todos dialogos nowait.
Por ejemplo, cuando desde la dialog a paso, mediante un botón, al dialog b, siempre le envío como dato el oDlg actual cosa de poder "manipularlo" en el otro dialog (dentro de una función, por supuesto). De este modo puedo hacer que al salir del dialog b, el dialog a sea quién tome el foco ó pasarle el foco a otro dialog, etc..
Quizás si explicaras mejor lo que pretendes, podría ayudarte.
Saludos
Rolando![Very Happy :D](./images/smilies/icon_biggrin.gif)
En realidad no entiendo bién lo que quieres hacer. Tengo un sistema hecho con todos dialogos nowait.
Por ejemplo, cuando desde la dialog a paso, mediante un botón, al dialog b, siempre le envío como dato el oDlg actual cosa de poder "manipularlo" en el otro dialog (dentro de una función, por supuesto). De este modo puedo hacer que al salir del dialog b, el dialog a sea quién tome el foco ó pasarle el foco a otro dialog, etc..
Quizás si explicaras mejor lo que pretendes, podría ayudarte.
Saludos
Rolando
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Re: Perder foco en Dialogo
Muy buenas lo que quiero hacer es crear un dialogo del tipo de outlook cuando vienen mensajes nuevos que aparezca semi-transparente y cuando pase el ratón por lo alto se pongo sin transparencia y cuando quite el ratón de lo alto se vuelva semi-transparente.
Un Saludo.
Un Saludo.
- Antonio Linares
- Site Admin
- Posts: 42520
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
Re: Perder foco en Dialogo
Juan,
Aqui tienes un ejemplo funcionando:
Aqui tienes un ejemplo funcionando:
Code: Select all | Expand
#include "FiveWin.ch"
#define TME_LEAVE 2
#define WM_MOUSELEAVE 675
function Main()
local oWnd
DEFINE WINDOW oWnd
ACTIVATE WINDOW oWnd ;
ON INIT DialogNoModal()
return nil
function DialogNoModal()
local oDlg := TMyDialog():New()
oDlg:bMMoved = { || TrackMouseEvent( oDlg:hWnd, TME_LEAVE ) }
ACTIVATE DIALOG oDlg NOWAIT CENTER
return nil
CLASS TMyDialog FROM TDialog
METHOD HandleEvent( nMsg, nWParam, nLParam )
METHOD MouseLeave( nRow, nCol, nFlags )
ENDCLASS
METHOD HandleEvent( nMsg, nWParam, nLParam ) CLASS TMyDialog
if nMsg == WM_MOUSELEAVE
return ::MouseLeave( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )
endif
return Super:HandleEvent( nMsg, nWParam, nLParam )
METHOD MouseLeave( nRow, nCol, nFlags ) CLASS TMyDialog
MsgBeep()
return nil
Re: Perder foco en Dialogo
Hola,
Otra forma quisá sería comprobar que cuando cualquiera de los controles pierda el foco los demás controles tampoco tienen foco:
Claro que para que esto funcione alguno de los controles del dialogo tiene que haber tomado el foco. Lo que hace, es que cuando ese control pierde el foco comprueba que ningún otro tiene foco.
Espero que te sirva
Otra forma quisá sería comprobar que cuando cualquiera de los controles pierda el foco los demás controles tampoco tienen foco:
Code: Select all | Expand
DEFINE DIALOG oDlg ...
REDEFINE ...
REDEFINE ...
...
AEVAL( oDlg:aControls, { |oCtrl| oCtrl:bLostFocus := VerFoco(oDlg) } )
...
ACTIVATE DIALOG oDlg NOWAIT ...
Function VerFoco(oDlg)
LOCAL nFoco := ASCAN( oDlg:aControls , { | oCtrl | oCtrl:lFocused } )
IF nFoco = 0
MSGALERT("NINGUN CONTROL TIENE FOCO") // AQUI SABES QUE HAS SALIDO DEL DIALOGO
ENDIF
RETURN NIL
...
Claro que para que esto funcione alguno de los controles del dialogo tiene que haber tomado el foco. Lo que hace, es que cuando ese control pierde el foco comprueba que ningún otro tiene foco.
Espero que te sirva
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
FWH 2007 - xHarbour - BCC55