Progress - Menu Bar

 
Vista:

Menu Bar

Publicado por Gaby (1 intervención) el 21/11/2006 00:32:49
Hola, estoy haciendo un menu y copie un ejemplo cuya sintaxis es correcta pero igual no me lo muestra. Me esta faltando algo?

DEFINE SUB-MENU sm-Open
MENU-ITEM mi-Cust LABEL "&Customer"
MENU-ITEM mi-Order LABEL "&Order".
DEFINE SUB-MENU sm-Table
SUB-MENU sm-Open LABEL "O&pen"
MENU-ITEM mi-Exit LABEL "E&xit".
DEFINE SUB-MENU sm-Reports
MENU-ITEM mi-Cust LABEL "&Monthly Summary"
MENU-ITEM mi-Labels LABEL "Mailing Labels"
RULE
MENU-ITEM mi-Balances LABEL "Order Tot&als" DISABLED
MENU-ITEM mi-Today LABEL "Order &Items" DISABLED
RULE
MENU-ITEM mi-Print LABEL "&Output to Printer" TOGGLE-BOX.
DEFINE SUB-MENU sm-Help
MENU-ITEM mi-Help LABEL "H&elp".
DEFINE MENU mbar MENUBAR
SUB-MENU sm-Table LABEL "&Tables"
SUB-MENU sm-Reports LABEL "&Reports"
SUB-MENU sm-Help LABEL "&Help".

ASSIGN DEFAULT-WINDOW:MENUBAR = MENU mbar:HANDLE.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Menu Bar

Publicado por Gustavo Ferrer (115 intervenciones) el 04/12/2006 20:18:38
&Scoped-define WINDOW-NAME C-Win
/*------------------------------------------------------------------------

File:

Description:

Input Parameters:
<none>

Output Parameters:
<none>

Author:

Created:

------------------------------------------------------------------------*/
/* This .W file was created with the Progress AppBuilder. */
/*----------------------------------------------------------------------*/

/* Create an unnamed pool to store all the widgets created
by this procedure. This is a good default which assures
that this procedure's triggers and internal procedures
will execute in this procedure's storage, and that proper
cleanup will occur on deletion of the procedure. */

CREATE WIDGET-POOL.

/* *************************** Definitions ************************** */

/* Parameters Definitions --- */

/* Local Variable Definitions --- */


/* ******************** Preprocessor Definitions ******************** */

&Scoped-define PROCEDURE-TYPE Window
&Scoped-define DB-AWARE no

/* Name of first Frame and/or Browse and/or first Query */
&Scoped-define FRAME-NAME DEFAULT-FRAME

/* Custom List Definitions */
/* List-1,List-2,List-3,List-4,List-5,List-6 */

/* *********************** Control Definitions ********************** */

/* Define the widget handle for the window */
DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.

/* Menu Definitions */
DEFINE SUB-MENU m_opcion_12
MENU-ITEM m_opcion_11 LABEL "opcion 1.1" .

DEFINE MENU MENU-BAR-C-Win MENUBAR
SUB-MENU m_opcion_12 LABEL "opcion 1"
MENU-ITEM m_opcion_2 LABEL "opcion 2" .

DEFINE MENU POPUP-MENU-DEFAULT-FRAME
MENU-ITEM m_opcion_1 LABEL "opcion 1" .

/* Definitions of the field level widgets */

/* ************************ Frame Definitions *********************** */

DEFINE FRAME DEFAULT-FRAME
WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
SIDE-LABELS NO-UNDERLINE THREE-D
AT COL 1 ROW 1
SIZE 80 BY 16.

/* *********************** Procedure Settings ************************ */

/* Settings for THIS-PROCEDURE
Type: Window
Allow: Basic,Browse,DB-Fields,Window,Query
Other Settings: COMPILE
*/

/* ************************* Create Window ************************** */

IF SESSION:DISPLAY-TYPE = "GUI":U THEN
CREATE WINDOW C-Win ASSIGN
HIDDEN = YES
TITLE = "<insert window title>"
HEIGHT = 16
WIDTH = 80
MAX-HEIGHT = 16
MAX-WIDTH = 80
VIRTUAL-HEIGHT = 16
VIRTUAL-WIDTH = 80
RESIZE = yes
SCROLL-BARS = no
STATUS-AREA = no
BGCOLOR = ?
FGCOLOR = ?
KEEP-FRAME-Z-ORDER = yes
THREE-D = yes
MESSAGE-AREA = no
SENSITIVE = yes.
ELSE {&WINDOW-NAME} = CURRENT-WINDOW.

ASSIGN {&WINDOW-NAME}:MENUBAR = MENU MENU-BAR-C-Win:HANDLE.
/* END WINDOW DEFINITION */


/* *********** Runtime Attributes and AppBuilder Settings *********** */

/* SETTINGS FOR WINDOW C-Win
VISIBLE,,RUN-PERSISTENT */
/* SETTINGS FOR FRAME DEFAULT-FRAME
*/
ASSIGN
FRAME DEFAULT-FRAME:POPUP-MENU = MENU POPUP-MENU-DEFAULT-FRAME:HANDLE.

IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
THEN C-Win:HIDDEN = no.




/* ************************ Control Triggers ************************ */

&Scoped-define SELF-NAME C-Win
ON END-ERROR OF C-Win /* <insert window title> */
OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
/* This case occurs when the user presses the "Esc" key.
In a persistently run window, just ignore this. If we did not, the
application would exit. */
IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
END.

ON WINDOW-CLOSE OF C-Win /* <insert window title> */
DO:
/* This event will close the window and terminate the procedure. */
APPLY "CLOSE":U TO THIS-PROCEDURE.
RETURN NO-APPLY.
END.

&UNDEFINE SELF-NAME


/* *************************** Main Block *************************** */

/* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */
ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}
THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.

/* The CLOSE event can be used from inside or outside the procedure to */
/* terminate it. */
ON CLOSE OF THIS-PROCEDURE
RUN disable_UI.

/* Best default for GUI applications is... */
PAUSE 0 BEFORE-HIDE.

/* Now enable the interface and wait for the exit condition. */
/* (NOTE: handle ERROR and END-KEY so cleanup code will always fire. */
MAIN-BLOCK:
DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK
ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:
RUN enable_UI.
IF NOT THIS-PROCEDURE:PERSISTENT THEN
WAIT-FOR CLOSE OF THIS-PROCEDURE.
END.

/* ********************** Internal Procedures *********************** */

PROCEDURE disable_UI :
/*------------------------------------------------------------------------------
Purpose: DISABLE the User Interface
Parameters: <none>
Notes: Here we clean-up the user-interface by deleting
dynamic widgets we have created and/or hide
frames. This procedure is usually called when
we are ready to "clean-up" after running.
------------------------------------------------------------------------------*/
/* Delete the WINDOW we created */
IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win)
THEN DELETE WIDGET C-Win.
IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
END PROCEDURE.

PROCEDURE enable_UI :
/*------------------------------------------------------------------------------
Purpose: ENABLE the User Interface
Parameters: <none>
Notes: Here we display/view/enable the widgets in the
user-interface. In addition, OPEN all queries
associated with each FRAME and BROWSE.
These statements here are based on the "Other
Settings" section of the widget Property Sheets.
------------------------------------------------------------------------------*/
VIEW FRAME DEFAULT-FRAME IN WINDOW C-Win.
{&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME}
VIEW C-Win.
END PROCEDURE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar