GDC 2.21 migration guide

This section describes differences you may encounter when upgrading to GDC 2.21.

Windows™: Installer uses MSI technology.

The installer and uninstaller have been rewritten using MSI technology. You will need elevated privileges to run the installer. The exe file we provide asks for elevated privileges, but this is not the case for:

  • the .msi inside the .exe. If you manipulate the msi file directly (for silent install, for instance) you need to run it in an elevated command line prompt.
  • the uninstaller. To uninstall GDC, use the Setup shortcut in the Start Menu and run it as Administrator.

ActiveX: embedded mode de-supported

Note: Earlier versions of GDC Active X proposed an embedded mode (the main window could be directly embedded in the html page instead of the monitor) . Unfortunately, we experience lots of focus conflict in this mode: in Genero, the focus is managed by the runtime system and not by the front-end. In embedded mode, system events can't be filtered as precisely as in classic mode, which leads to unacceptable focus issues. Therefore it has been decided to remove this too buggy feature. classic Active X mode is still available and supported.

Windows: Default font size is 8.25

While implementing the feature request support non integer font size, we noticed that any font copy was using an integer font size value. So this means that the default font size was not 8.25 as the monitor shows, but only 8. This issue is now fixed ; while this is probably not noticeable in most of the cases, this may have an impact if you designed your form exactly for a given resolution.

Actions without names are now visible

Bug #14890 - Actions without names are not displayed - has been fixed in 2.21, to match TUI:
MAIN
 DEFINE cmd1 STRING
 DEFINE cmd2 STRING
 LET cmd1 = "cmd1"
 MENU "test"
  COMMAND cmd1
  COMMAND cmd2
  COMMAND "exit" EXIT MENU
 END MENU
END MAIN
GDC now behaves like TUI:

Figure: GDC behaving like TUI


The figure is a screen shot showing an action displayed as a button with no label.
This may have an impact on your programs if you are using actions without names, which was a classic pattern in early Genero Days:
MAIN
 DEFINE commands ARRAY[4] OF STRING
 DEFINE idx INT
 LET commands[1] = "cmd1"
 LET commands[2] = "cmd2"
 MENU "test"
  BEFORE MENU
   FOR idx = 1 TO 2
    SHOW OPTION commands[idx]
   END FOR
   FOR idx = 3 TO 4
    HIDE OPTION commands[idx]
   END FOR
   COMMAND commands[1]
   COMMAND commands[2]
   COMMAND commands[3]
   COMMAND commands[4]
   COMMAND "exit" EXIT MENU
 END MENU
END MAIN

This will result in an extra button with no label on your screen:

Figure: Extra button with no label


The figure is a screen shot showing an extra button with no label.
The reason is that
FOR idx = 3 TO 4
 HIDE OPTION commands[idx]
END FOR
is actually:
HIDE OPTION commands[3]
HIDE OPTION commands[4]
which is:
HIDE OPTION ""
HIDE OPTION ""

that is, hide twice the first action named "". The runtime system has no way to know you would like to hide a different option as they all have the same name. Therefore only the first action without a name is hidden, and all the other are visible.

To solve this issue and get the expected result, you have to give a different name to each of your actions:
MAIN
  DEFINE commands ARRAY[4] OF STRING
  DEFINE idx INT
  LET commands[1] = "cmd1"
  LET commands[2] = "cmd2"
  LET commands[3] = "cmd3" --give a name even if not used
  LET commands[4] = "cmd4" --give a name even if not used