Como capturar objeto Dialog ativa?

Post Reply
MGA
Posts: 1219
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Como capturar objeto Dialog ativa?

Post by MGA »

Sr. Antonio e amigos,

Como capturar o objeto da dialog que estiver ativa no momento?

Obrigado
ubiratanmga@gmail.com

FWH17.04
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
Posts: 1219
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: Como capturar objeto Dialog ativa?

Post by MGA »

Sr. Antonio,
Direto na classe DIALOG.PRG, como passar o obj?

METHOD KeyDown( nKey, nFlags ) CLASS TDialog

if nKey == VK_ESCAPE

if ::oWnd == nil
::End()
else
if ::oWnd:ChildLevel( TMdiChild() ) != 0
::End()
else
if ::oWnd:ChildLevel( TDialog() ) != 0
::End()
#ifdef __HARBOUR__
elseif Upper( ::oWnd:ClassName() ) == "TMDIFRAME" // To avoid ESC being ignored
::End()
#endif
else
return Super:KeyDown( nKey, nFlags )
endif
endif
endif
// else
elseif nKey==VK_F12
sgtrad(::hWnd)

else

return Super:KeyDown( nKey, nFlags )
endif

return nil

Do jeito acima não funciona!
ubiratanmga@gmail.com

FWH17.04
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
Posts: 1219
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: Como capturar objeto Dialog ativa?

Post by MGA »

Up!
ubiratanmga@gmail.com

FWH17.04
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
User avatar
VPOZO
Posts: 32
Joined: Tue Jun 24, 2008 5:19 pm
Location: Punta Arenas, Chile

Re: Como capturar objeto Dialog ativa?

Post by VPOZO »

Prueba con esto:

oDlg:lFocused

debiera ser .T. cuando tiene el foco

me comentas por que no lo prove...

Saludos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Como capturar objeto Dialog ativa?

Post by Antonio Linares »

SGS,

Si lo que deseas es saber que control de un diálogo tiene foco, puedes usar:

Code: Select all

nAt = AScan( oDlg:aControls, { | o | o:lFocused } )
if nAt != 0
   MsgInfo( oDlg:aControls[ nAt ]:ClassName() )
   // MsgInfo( oDlg:aControls[ nAt ]:nId )
endif
 
Si lo que deseas es obtener el objeto diálogo que se corresponde a un determinado hWnd

Code: Select all

oDlgFromHwnd( hWnd )
 
Desde cualquier Método de la Clase TDialog, el objeto diálogo está accesible en "Self":

Code: Select all

elseif nKey==VK_F12
   sgtrad( Self ) // Self es oDlg
else
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply