Page 2 of 2

Posted: Thu Feb 02, 2006 7:44 am
by Enrico Maria Giordano
If you issue oDlg:End() then you will have to recreate the DIALOG (DEFINE DIALOG etc.) again. You can't reuse an ended DIALOG.

EMG

Posted: Thu Feb 02, 2006 5:16 pm
by don lowenstein
I have done this in the past. Each control needed to be "refreshed" in the initialization of the ::activate()

The reason I did this was due to many controls / folder pages, etc, which were created from data driven applications. The computers were much slower ( 386 speed ) and this saved lots of overhead.

Upon 're-activation' the controls worked fine, but, my dialog's background was "transparent".

Not an issue anymore - computers are much faster and no problem saving data-driven parms in an array and define / activate each time needed.

Things have come a long way, haven't they?

Posted: Thu Feb 02, 2006 5:22 pm
by Enrico Maria Giordano
I think it is not correct to reuse an ended DIALOG. You can hide it instead.

EMG

Posted: Thu Feb 02, 2006 5:38 pm
by James Bott
Enrico,

I agree, but I think he is just saying that he is storing the parameters in an array, then reusing the parameters to define and acitvate the dialog each time. I guess this would be no different than rereading them from a resource file.

Don, am I right?

James

Posted: Thu Feb 02, 2006 6:53 pm
by don lowenstein
Exactly -

For me, easier to store dialog parms in a database and build dynamically vs. create resource, manually code controls to variables. etc. Using a data dictionary for me, is cleaner - only one input program, only one browse/update program, etc.

Posted: Thu Feb 02, 2006 7:05 pm
by James Bott
Don,

I am curious as to how you design the dialogs in the first place. Do you design them in Workshop or other, then read the resource file to create your database, or how?

James

Posted: Thu Feb 02, 2006 7:09 pm
by Enrico Maria Giordano
James Bott wrote:Enrico,

I agree, but I think he is just saying that he is storing the parameters in an array, then reusing the parameters to define and acitvate the dialog each time. I guess this would be no different than rereading them from a resource file.

Don, am I right?

James
It is still not correct. Ending a dialog means that the DialogBox Windows object is released and you can't use its handle anymore. If you want to use the dialog again you have to instantiate a new TDialog object.

EMG

Posted: Thu Feb 02, 2006 7:14 pm
by Enrico Maria Giordano
don lowenstein wrote:Exactly -

For me, easier to store dialog parms in a database and build dynamically vs. create resource, manually code controls to variables. etc. Using a data dictionary for me, is cleaner - only one input program, only one browse/update program, etc.
Are you saying that you issued DEFINE DIALOG etc. again with the same parameter of the first one? If yes then it's ok to do so. What you can't do is to end a dialog and then activate it again without defining it.

Regarding your main problem, try to build a reduced and self-contained sample.

EMG