Terminal screen display handling
Compared to I4GL, Genero BDL uses an optimized and specific design to handle terminal display, that introduces some differences.
TERMCAP/TERMINFO
Genero BDL uses termcap/terminfo based solutions and therefore supports all kind of terminals the IBM® Informix® 4GL supports.
For more details, see Using a text terminal.
Remaining DISPLAY AT text
With IBM Informix 4GL, displaying text to the current window is a direct rendering method, and no trace
of the displayed text is keep. When chaining interactive instructions and various forms with code
using DISPLAY AT
instructions, it is possible that some phantom text remains with I4GL when a previous window/form is
re-activated.
Genero BDL implements the user interface with the concept of Abstract User Interface, a XML tree that keeps
the elements that have been displayed by the program. Consequently, a text shown with a
DISPLAY AT
instruction will remain, even after closing a window/form that was
hiding this text. With I4GL, the text disappears.
Regarding DISPLAY AT
, the behavior of Genero BDL is more consistent than
I4GL.
TTY attributes not reused in new INPUT
INPUT
dialog without ATTRIBUTES
clause
defining TTY attributes, reuses the TTY attributes that were set by a previous dialog. For example,
when an OPEN WINDOW
defines TTY attributes, then an INPUT
dialog
without TTY attributes is executed, followed by another INPUT
with TTY attributes,
then again by the INPUT
without TTY attributes: The last INPUT
uses the TTY attributes defined the second
INPUT
:OPEN WINDOW w1 AT 2,2 WITH FORM "form1"
ATTRIBUTES(BORDER,BLUE,UNDERLINE)
...
INPUT BY NAME rec.* WITHOUT DEFAULTS
...
INPUT BY NAME rec.* WITHOUT DEFAULTS ATTRIBUTES(RED,REVERSE)
...
INPUT BY NAME rec.* WITHOUT DEFAULTS -- gets RED,REVERSE
...
With Genero BDL, any new INPUT
without TTY attributes always uses the attributes
defined by the OPEN WINDOW
. This behavior is more consistent than I4GL.
If needed, review the program logic and explicitely use the TTY attribute you want directly in
the INPUT
dialog.