Kbase P117937: How to create a dynamic COMBO-BOX widget?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/10/2010 |
|
Status: Verified
GOAL:
How to create a dynamic COMBO-BOX widget?
GOAL:
How to populate a dynamic COMBO-BOX widget?
GOAL:
How to set the default initial SCREEN-VALUE of a dynamic COMBO-BOX widget?
FACT(s) (Environment):
Windows
Progress 9.x
OpenEdge 10.x
FIX:
The following 4GL procedure demonstrates how to create, populate and set the initial default screen-value of a dynamic COMBO-BOX widget:
DEFINE VARIABLE hDynCombo AS HANDLE NO-UNDO.
DEFINE VARIABLE btnDisplay AS HANDLE NO-UNDO.
DEFINE VARIABLE btnBuild AS HANDLE NO-UNDO.
DISPLAY "Dynamic COMBO-BOX Example" WITH FRAME FrameName WITH WIDTH 80 DOWN.
/* Create the dynamic COMBO-BOX widget */
CREATE COMBO-BOX hDynCombo
ASSIGN
ROW = 3
COLUMN = 5
INNER-LINES = 5
FRAME = FRAME FrameName:HANDLE
SORT = TRUE
SENSITIVE = TRUE
VISIBLE = TRUE.
/* Define the combo-box to have LIST-ITEM-PAIRS */
ASSIGN hDynCombo:LIST-ITEM-PAIRS = "" NO-ERROR.
/* Populate the dynamic COMBO-BOX widget */
CREATE BUTTON btnBuild
ASSIGN
ROW = 3
COLUMN = 20
LABEL = "Build List"
FRAME = FRAME FrameName:HANDLE
SENSITIVE = TRUE
VISIBLE = TRUE
TRIGGERS:
ON CHOOSE DO:
hDynCombo:ADD-LAST("BBBBB", "FIRST").
hDynCombo:ADD-LAST("AAAAA", "SECOND").
hDynCombo:ADD-LAST("CCCCC", "THIRD").
/* Set the default initial SCREEN-VALUE of the dynamic COMBO-BOX widget */
hDynCombo:screen-value = hDynCombo:ENTRY(1).
END.
END TRIGGERS.
/* Display the COMBO-BOX on CHOOSE of a dynamic BUTTON widget */
CREATE BUTTON btnDisplay
ASSIGN
ROW = 7
COLUMN = 10
LABEL = "Display Value"
FRAME = FRAME FrameName:HANDLE
SENSITIVE = TRUE
VISIBLE = TRUE
TRIGGERS:
ON CHOOSE DO:
MESSAGE hDynCombo:SCREEN-VALUE VIEW-AS ALERT-BOX.
END.
END TRIGGERS.
/* Main Block */
MAIN-BLOCK:
DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
VIEW FRAME FrameName IN WINDOW DEFAULT-WINDOW.
VIEW DEFAULT-WINDOW.
IF NOT THIS-PROCEDURE:PERSISTENT THEN
 .; WAIT-FOR CLOSE OF THIS-PROCEDURE.
END..