Case insensitive names with UI methods
Methods of built-in classes using user interface object names are now case insensitive.
Before Genero BDL version 3.20, built-in class methods such as
ui.Dialog.setActionActive()
were case sensitive. Since compilers convert names
to lowercase, it was required to use lowercase names in the built-in class
methods:ON ACTION MyAction -- converted to myaction
...
CALL DIALOG.setActionActive("MyAction",FALSE) -- produced a runtime error!
CALL DIALOG.setActionActive("myaction",FALSE) -- works
Starting with version 3.20, these methods are now case insensitive, so you can
write:
ON ACTION MyAction -- converted to myaction
...
CALL DIALOG.setActionActive("MyAction",FALSE)
Note: This change is backward compatible, there is no need to modify the existing code.
User interface object names defined in the form files can also be referenced with the exact name.
For example, in the .per form
file:
EDIT f01 = Customer.CustAddr, ... ;
GROUP g1 : Group1, ... ;
...
SCREEN RECORD CustRec (...);
...
In the .4gl source
file:
CALL DIALOG.setFieldActive("Customer.CustAddr",FALSE)
...
CALL DIALOG.getForm().setElementHidden("Group1",1)
...
LET r = DIALOG.getCurrentRow("CustRec")
...
Note: The methods to build dynamic dialogs are still
case sensitive. For example, to define an
ON ACTION
trigger: CALL
mydlg.addTrigger("ON ACTION accept")
.