Page 1 of 2
How refresh a dialog ?
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Tue Mar 18, 2008 1:18 pm
by Silvio
I load a dialog
in this dialog I have a MENU pulldown where I can set a logic variable
before of this dialog thereis the variable lSmall
If lsmall
DIALOG
endif
IF Lbig
DIALOG
endif
ACTIVATE
If change the value of this logic variable How I can make to reload my application and reload the dialog ?
Re: How refresh a dialog ?
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Tue Mar 18, 2008 2:15 pm
by Enrico Maria Giordano
oDlg:End()
and then
DEFINE DIALOG oDlg...
EMG
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Tue Mar 18, 2008 2:53 pm
by Silvio
perhaps you not understand me
I made a menu
...
menuitem " scentific" action ( lstandard:=.f.,oDlg:refresh())
....
endmenu
where I must insert the command odlg:end() and define dialog ... ?
For me this is very difficult to understand...Perhaps it is time: here is rain
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Tue Mar 18, 2008 3:01 pm
by Enrico Maria Giordano
You have to End() the current dialog and call the function that created it, the one with
If lsmall
DIALOG
endif
IF Lbig
DIALOG
endif
ACTIVATE
EMG
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Mar 19, 2008 1:43 am
by dutch
I've used multilanguage menu and change on the fly.
You must end menu and rebuild it again.
Regards,
Dutch
- Code: Select all Expand view
MEMVAR->Lang := cLang
oMenu:End()
BuildMenu( oWnd )
oWnd:SetMenu( oMenu )
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Mar 19, 2008 8:08 am
by Enrico Maria Giordano
It seems that Silvio wants to modify the entire dialog. If that is true, it is easier to design a new dialog and alternatively End() the current and DEFINE the new.
EMG
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Mar 19, 2008 8:48 am
by Silvio
THansk Emg
I sent to Antonio the new msgcalc()
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Mar 19, 2008 7:24 pm
by driessen
Silvio,
Why don't you use some code like this :
- Code: Select all Expand view
LOCAL cRet := .T.
LOCAL cCheck := .F.
DO WHILE cRet
IF cCheck
DEFINE DIALOG ...
ELSE
DEFINE DIALOG ...
ENDIF
....
REDEFINE CHECKBOX cCheck ID ... ON CHANGE (cRet:=.T.,oDlg:End())
....
REDEFINE BUTTON ... ACTION (cRet:=.F.,oDlg:End())
....
ACTIVATE ....
IF !cRet
EXIT
ENDIF
ENDDO
The button is, of course, the END-button.
I use it often and it works fine.
Good luck.
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Wed Mar 19, 2008 7:33 pm
by Silvio
NOOOOOOOOOOOOO
I want refresh the same dialog
sample :
open the WIN XP ( OR 2000) CALC.EXE
NOW YOU HAVE THE CALC STANDARD
OPEN THE SCENTIFIC CALC
i HOPE YOU UNDERSTAND ME NOW
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Thu Mar 20, 2008 8:01 am
by Enrico Maria Giordano
Ok, then you have to play with Hide() and Show() methods of the controls and with the Move() method of the dialog.
EMG
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Thu Mar 20, 2008 1:42 pm
by StefanHaupt
you can also use pages, one for the standard look and one for scientific look. Then you can easily change the look.
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Fri Mar 21, 2008 11:36 am
by Silvio
DEAR EMG
Can you make an test small with move function please
for understand How I must make it
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Fri Mar 21, 2008 3:22 pm
by Antonio Linares
Silvio,
Its the same way the folder works. It shows the active page and hides the previous one:
oDlg1:Hide(), oDlg2:Show()
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Fri Mar 21, 2008 5:44 pm
by Silvio
Dear Antonio,
None friend understand what I want
If you load Windows Calc you can select scentific calc or stardard calc
I have msgcal ( calc standard) and I insert on a menu pulldown a selection to change the form of the dialog
IF lStandard // active standard calc
DEFINE DIALOG oDlg SIZE 255, 245 TITLE cTitle FONT oFont ICON oIco
ELSE
DEFINE DIALOG oDlg SIZE 485, 245 TITLE cTitle FONT oFont ICON oIco
ENDIF
I want only refresh the dialog and change the form iand esecute
DEFINE DIALOG oDlg SIZE 485, 245 TITLE cTitle FONT oFont ICON oIco
if lstandard is .f.
I hope you help me
![Post Post](./styles/prosilver/imageset/icon_post_target.gif)
Posted:
Fri Mar 21, 2008 8:21 pm
by Antonio Linares
If you just want to change its size then you can use:
oDlg:SetSize( nWidth, nHeight )
To change its title use:
oDlg:SetText( "new title" )