Here is a simple menu. I would like to prevent quitting the application when ESC is pressed. Instead, I would like to have the equivalent of ALT-F on the last ESC. Now, the last ESC quits the application.
Thanks,
Alexandre
Code: Select all
#INCLUDE "adsdbe.CH"
#include "AppEvent.ch"
#include "Dmlb.ch"
#include "FileIO.ch"
#INCLUDE "xbp.ch"
#INCLUDE "inkey.CH"
#INCLUDE "dccolor.CH"
#INCLUDE "dcdialog.CH"
#include "Directry.ch"
#include "os.ch"
#include "Dmlb.ch"
#include "DLL.CH"
MEMVAR dCCOLOR
MEMVAR oMainWindow
*******************************************************************************
FUNCTION Main()
LOCAL Getlist[0], GetOptions, ;
oMenuBar, oMenuFiles, oMenuConfig, oMenuHelp
PUBLIC pPath := DC_CurPath()
PUBLIC oMainWindow
DCMENUBAR oMenuBar
DCSUBMENU oMenuFiles PROMPT 'Files' PARENT oMenuBar
DCMENUITEM 'Sales' PARENT oMenuFiles ;
WHEN {||Empty(oMainWindow:drawingArea:childList())} ;
ACTION {|o|o:=Thread():new(),o:Start({||sGUI_SAL()})} // TRANSACTIONS: SALES QUOTE ...
DCMENUITEM 'Customers' PARENT oMenuFiles ;
WHEN {||Empty(oMainWindow:drawingArea:childList())} ;
ACTION {|o|o:=Thread():new(),o:Start({||sGUI_CUS()})} // CUSTOMER
DCMENUITEM 'Quit' PARENT oMenuFiles ;
ACTION {|o|o:=Thread():new(),o:Start({||sGUI_QUIT()})} // QUIT
DCSUBMENU oMenuConfig PROMPT 'Configuration' PARENT oMenuBar
DCMENUITEM 'Transaction Date' PARENT oMenuConfig ;
WHEN {||Empty(oMainWindow:drawingArea:childList())} ;
ACTION {|o|o:=Thread():new(),o:Start({||sGUI_TRADAT()})} // SET DATE AUTORIZED
DCMENUITEM 'Currency' PARENT oMenuConfig ;
WHEN {||Empty(oMainWindow:drawingArea:childList())} ;
ACTION {|o|o:=Thread():new(),o:Start({||sGUI_CUR()})} // SET ALL CURRENCYS
DCSUBMENU oMenuHelp PROMPT 'Help' PARENT oMenuBar
DCMENUITEM 'Manual' PARENT oMenuHelp ;
WHEN {||Empty(oMainWindow:drawingArea:childList())} ;
ACTION {|o|o:=Thread():new(),o:Start({||sGUI_MANUAL()})} //
DCMENUITEM 'About' PARENT oMenuHelp ;
WHEN {||Empty(oMainWindow:drawingArea:childList())} ;
ACTION {|o|o:=Thread():new(),o:Start({||sGUI_ABOUT()})} //
DCGETOPTIONS WINDOWWIDTH 1100 WINDOWHEIGHT 650 ;
DCREAD GUI TITLE 'SEGOVI' PARENT @oMainWindow ;
OPTIONS GetOptions ;
EVAL {|o|o:setFrameState(XBPDLG_FRAMESTAT_MAXIMIZED)}
RETURN nil
********************************************************************************
PROC appsys ; RETURN
********************************************************************************
FUNCTION SalesReport()
DCMSGBOX 'In Sales Report'
RETURN nil
********************************************************************************
FUNCTION sGUI_SAL()
RETURN nil
********************************************************************************
FUNCTION sGUI_CUS()
RETURN nil
********************************************************************************
FUNCTION sGUI_QUIT()
QUIT
RETURN nil
********************************************************************************
FUNCTION sGUI_TRADAT ; RETURN nil
FUNCTION sGUI_CUR() ; RETURN nil
FUNCTION sGUI_MANUAL() ; RETURN nil
FUNCTION sGUI_ABOUT() ; RETURN nil