PreviousNextIndex

CREATE WIDGET-POOL statement

Creates a named or unnamed widget pool in which to contain most dynamic widgets and other handle-based objects created during an ABL session.

Note: Does not apply to SpeedScript programming.
Syntax

CREATE WIDGET-POOL 
  [ pool-name [ PERSISTENT ] ] 
  [ NO-ERROR ] 

pool-name
PERSISTENT
NO-ERROR
Example

The following example lets you create a series of dynamic buttons. All the buttons are created within a named widget pool. Because the widget pool is created within a trigger, it is defined as persistent so that it remains allocated after the trigger ends. You can at any time choose to delete the entire widget pool and start over.

r-widpl.p 
DEFINE VARIABLE wh AS HANDLE NO-UNDO. 
DEFINE BUTTON b_create LABEL "Create Button". 
DEFINE BUTTON b_del    LABEL "Delete Buttons". 
DEFINE BUTTON b_quit LABEL "Quit" 
  TRIGGERS: 
    ON CHOOSE DO: 
      IF VALID-HANDLE(wh) THEN 
        DELETE WIDGET-POOL "new-buttons". 
      QUIT. 
    END. 
  END. 
   
DEFINE FRAME butt-frame 
  b_create b_del b_quit 
  WITH ROW SCREEN-LINES - 2. 
   
DEFINE FRAME new-buttons 
  WITH SIZE 76 BY 11 CENTERED ROW 2 TITLE "New Buttons". 
ON CHOOSE OF b_create IN FRAME butt-frame DO: 
  STATUS INPUT "Press RETURN to select a new button". 
  IF wh = ? OR NOT VALID-HANDLE(wh) THEN 
    CREATE WIDGET-POOL "new-buttons" PERSISTENT. 
  CREATE BUTTON wh IN WIDGET-POOL "new-buttons" ASSIGN 
    FRAME     = FRAME new-buttons:HANDLE 
    ROW       = RANDOM(2, 9) 
    COLUMN    = RANDOM(2, 58) 
    LABEL     = "BUTTON " + STRING(ETIME) 
    SENSITIVE = TRUE 
    VISIBLE   = TRUE 
    TRIGGERS: 
      ON CHOOSE PERSISTENT RUN dispmsg. 
    END. 
END. 
ON CHOOSE OF b_del IN FRAME butt-frame DO: 
  IF VALID-HANDLE(wh) THEN 
    DELETE WIDGET-POOL "new-buttons". 
  STATUS INPUT.  
END. 
ENABLE b_create b_del b_quit WITH FRAME butt-frame. 
DO ON ENDKEY UNDO, LEAVE: 
  WAIT-FOR CHOOSE OF b_quit IN FRAME butt-frame. 
END. 
IF VALID-HANDLE(wh) THEN  
  DELETE WIDGET-POOL "new-buttons". 
PROCEDURE dispmsg: 
  MESSAGE "You chose button " SELF:LABEL. 
END PROCEDURE. 

Notes
See also

CLASS statement, CREATE widget statement, DELETE WIDGET-POOL statement


OpenEdge Release 10.2B
Copyright © 2009 Progress Software Corporation
PreviousNextIndex