Five Linux Dialogs and Wait States
Posted: Sun Aug 19, 2007 12:36 am
Antonio
It appears that Five Linux dialogs don't have a wait state. By that I mean that if I have code such as
DEFINE DIALOG dlgTest TITLE "Test"
<define dialog here>
ACTIVATE DIALOG dlgTest CENTERED
MsgInfo( "Test Dialog Over" )
I will; get the message Test Dialog over before any event has taken place on the dialog. I do have one dialog that seems to behave as I would have expected but I can't quite see why.
This isn't a problem if you call the dialog directly from the application window because the window has a wait state in it (I presume).
It is a problem for me in two ways, however.
Firstly I want to call a dialog from another dialog (for eaxample have a record displayed and click edit to edit it)
Secondly I typically have code a bit like this
DO WHILE .T.
ShowDialog()
IF ::ExitCode = "X"
RETURN nil
ENDIF
IF ::ExitCode = "E"
::lEdit := .T.
ELSE
::lEdit := .F.
ENDIF
ENDDO
But the dialog returns before the buttons on it can set the ::ExitCode.
Can you confirm if this is correct behaviour? If not what am I doing wrong? Can I use Windows everywhere rather than dialogs and what would the implications of such a change be? Can I simply program in a wait state somehow (I don't think plain INKEY( 0 ) or WAIT are up to the task.
Thanks
Doug (xProgrammer)
It appears that Five Linux dialogs don't have a wait state. By that I mean that if I have code such as
DEFINE DIALOG dlgTest TITLE "Test"
<define dialog here>
ACTIVATE DIALOG dlgTest CENTERED
MsgInfo( "Test Dialog Over" )
I will; get the message Test Dialog over before any event has taken place on the dialog. I do have one dialog that seems to behave as I would have expected but I can't quite see why.
This isn't a problem if you call the dialog directly from the application window because the window has a wait state in it (I presume).
It is a problem for me in two ways, however.
Firstly I want to call a dialog from another dialog (for eaxample have a record displayed and click edit to edit it)
Secondly I typically have code a bit like this
DO WHILE .T.
ShowDialog()
IF ::ExitCode = "X"
RETURN nil
ENDIF
IF ::ExitCode = "E"
::lEdit := .T.
ELSE
::lEdit := .F.
ENDIF
ENDDO
But the dialog returns before the buttons on it can set the ::ExitCode.
Can you confirm if this is correct behaviour? If not what am I doing wrong? Can I use Windows everywhere rather than dialogs and what would the implications of such a change be? Can I simply program in a wait state somehow (I don't think plain INKEY( 0 ) or WAIT are up to the task.
Thanks
Doug (xProgrammer)