Kbase P104005: Resizing window causes fill-in widgets to be blanked out
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/9/2009 |
|
Status: Verified
SYMPTOM(s):
4GL/ABL: Window is resized by user at runtime to make it larger then resized again to make it smaller
Using VIRTUAL-HEIGHT-PIXELS attribute
Button is then pressed which issues a DISPLAY command to change the contents of one of the fill-in widgets on the window
Using DISPLAY command after setting virtual height
All other fill-in widgets on the window are then blanked out
The application contains code that assigns the frame's height and virtual height as follows:
IF iFrameHeight < FRAME FrameMain:HEIGHT-PIXELS THEN
ASSIGN
FRAME FrameMain:HEIGHT-PIXELS = iFrameHeight
FRAME FrameMain:VIRTUAL-HEIGHT-PIXELS = iFrameHeight.
FACT(s) (Environment):
Windows
OpenEdge 10.x
CAUSE:
Bug# OE00115582
CAUSE:
The code assigns the frame's HEIGHT-PIXELS then its VIRTUAL-HEIGHT-PIXELS. This order of assignment leaves Progress in a state where it thinks the field-group (the internal object which contains the widgets in the frame) is in a multiple DOWN frame. The fill-ins were cleared in this case because that's what Progress does a DOWN frame iterates.
FIX:
The solution is to reverse the order of assignment by assigning the frame's VIRTUAL-HEIGHT-PIXELS then its HEIGHT-PIXELS instead of the offending frame's HEIGHT-PIXELS then its VIRTUAL-HEIGHT-PIXELS. For example change the code snippet:
IF iFrameHeight < FRAME FrameMain:HEIGHT-PIXELS THEN
ASSIGN
FRAME FrameMain:HEIGHT-PIXELS = iFrameHeight
FRAME FrameMain:VIRTUAL-HEIGHT-PIXELS = iFrameHeight.
To:
IF iFrameHeight < FRAME FrameMain:HEIGHT-PIXELS THEN
ASSIGN
FRAME FrameMain:VIRTUAL-HEIGHT-PIXELS = iFrameHeight
FRAME FrameMain:HEIGHT-PIXELS = iFrameHeight.