[Skip top navbar]

Andrew Gregory's Web Pages

Marriners Falls, Approx. 38°42'08"S 143°38'32"E


OPLExtended Dialog Controls


2002-07-30: I've discovered memory corruption issues related to the use of this library module. The module doesn't directly cause the problems, but the fact that it bypasses OPL does. It appears that OPL remembers the variables from the most recently used standard OPL dialog box. When one of these extended dialog boxes is used, the values from it are also copied over the values of the most recently used standard OPL dialog. It appears to be OPL doing the copying and I haven't been able to figure out how to stop it.

To be precise, when an extended dialog is accepted, the values are copied line-by-line over the values of the previous standard dialog. If the previous dialog used LOCAL variables, these are stored on the stack, and hence the extended dialog will overwrite some part of the stack, almost certainly causing your app to crash. If GLOBAL variables are used, these will simply be overwritten and your app will end up with corrupted variables.

In light of this, I cannot recommend this module be used. I suspect (but haven't tested) that if all your dialogs use this module then you won't have any problems, as there will never be a previous standard OPL dialog to cause the interference.



There is provision for the dxFILE: control to return all the tagged files when I figure it out.

NOTE: Regular OPL dXXX controls cannot co-exist with these dxXXX controls in the same dialog box. Of course, you can mix dialogs that use these dxXXX controls with dialogs that don't in the same application.

Derived From

Code written by myself.

Required Modules