home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a044 / 2.ddi / MENUS.DFT < prev    next >
Encoding:
Text File  |  1993-08-31  |  2.9 KB  |  174 lines

  1. *:
  2. *: MENUS.DFT - dBFast Template File for Menus
  3. *:
  4. *:     Project: <<PROJECT_NAME>>
  5. *:
  6. *:     Program: <<PROG_NAME>>
  7. *: Description: <<DESC>>
  8. *:      Author: <<AUTHOR>>
  9. *:    Copyright <<COPYRITE>>
  10. *:
  11.  
  12. <<DO WHILE DLLS>>
  13. <<DECLARE_DLL>>
  14. <<ENDDO>>
  15.  
  16. SET PROCEDURE TO <<PROG_NAME>>
  17.  
  18. <<DO WHILE PROC_LIBS>>
  19. SET PROCEDURE TO <<PROC_LIB>> && Set user procedure file
  20. <<ENDDO>>
  21.  
  22. SET EVENTMSK TO 159
  23.  
  24. SET READ VIDEO TO 240
  25.  
  26. <<SET_FONTS>>
  27.  
  28. *: Initialize memory variables
  29. STORE 0  TO nTheMenu, nTheOption, nTheKey
  30. STORE '' TO sTheWindow, sTheButton
  31. <<MEM_VARS>>
  32.  
  33. SET WINDOW TITLE TO '<<DESC>>'
  34.  
  35. <<DO WHILE DATAFILES>>
  36. IF FILE("<<DATAFILE>>.DBF")
  37.   SELECT <<WORKAREA>>
  38.   USE <<DATAFILE>>
  39.   <<IF INDEXES>>
  40.   SET INDEX TO <<INDEXES>>
  41.   <<ENDIF>>
  42.   <<IF FIELDLIST>>
  43.   SET FIELDS TO <<FIELDLIST>>
  44.   SET FIELDS ON
  45.   <<ENDIF>>
  46.   <<IF FILTER>>
  47.   SET FILTER TO <<FILTER>>
  48.   <<ENDIF>>
  49. ELSE
  50.   WARNING(csNoDataFile,"<<DATAFILE>>",387)
  51.   RETURN
  52. ENDIF
  53. <<ENDDO>>
  54.  
  55. <<DO WHILE RELATIONS>>
  56. SELECT <<REL_FROM>>
  57. <<DO WHILE LINKS>>
  58.   SET RELATION TO <<REL_EXP>> INTO <<REL_TO>>
  59. <<ENDDO>>
  60. <<ENDDO>>
  61.  
  62. SELECT 1
  63.  
  64. <<DO BEFORE>>
  65.  
  66. <<DO WHILE POPUPS>>
  67. <<CREATE POPUP>>
  68. <<ENDDO>>
  69.  
  70. <<CREATE PULLDOWN>>
  71.  
  72. SET MENU TO '<<PROG_NAME>>'
  73. sMenuName = '<<PROG_NAME>>'
  74.  
  75. <<MENU_STATES>>
  76.  
  77. *: Init sAction to something so it is not empty
  78. sAction = '?'
  79.  
  80. DO WHILE .NOT. EMPTY(sAction)
  81.  
  82.   READ SAVE
  83.  
  84.   nEvent     = EVENT()
  85.   nTheMenu   = HMENU()
  86.   nTheOption = VMENU()
  87.   nTheKey    = LASTKEY()
  88.   sTheWindow = WINDOW()
  89.   sTheButton = BUTTON()
  90.  
  91.   sAction = <<PROG_NAME>>_Translate(nEvent)
  92.   DO <<PROG_NAME>>_Action
  93. ENDDO
  94.  
  95. sAction = '?'
  96.  
  97. ERASE
  98. CLOSE MENU '<<PROG_NAME>>'
  99.  
  100. <<DO AFTER>>
  101.  
  102. RETURN
  103.  
  104. *****************************
  105. FUNCTION <<PROG_NAME>>_Translate()
  106. *****************************
  107. PARAMETER nTheEvent
  108. PRIVATE sTheAction
  109.  
  110.   sTheAction = ' '
  111.   DO CASE
  112.      CASE nTheEvent = eClose
  113.         sTheAction = 'CLOSE'
  114.  
  115. <<IF KEYS>>
  116.      CASE nTheEvent = eKybd
  117.         DO CASE
  118.   <<DO WHILE KEYS>>
  119.           CASE ExactMatch(nTheKey, <<THE_KEY>>)
  120.              sTheAction = '<<THE_NAME>>'
  121.   <<ENDDO>>
  122.           OTHERWISE
  123.              sTheAction = '?'
  124.         ENDCASE
  125. <<ENDIF>>
  126.  
  127. <<IF MENUS>>
  128.      CASE nTheEvent = eMenu
  129.         DO CASE
  130.   <<DO WHILE MENUS>>
  131.           CASE ExactMatch(nTheMenu, <<THE_MENU>>)
  132.              DO CASE
  133.      <<DO WHILE OPTIONS>>
  134.                 CASE ExactMatch(nTheOption, <<THE_OPTION>>)
  135.                   sTheAction = '<<THE_NAME>>'
  136.      <<ENDDO>>
  137.              ENDCASE
  138.   <<ENDDO>>
  139.         ENDCASE
  140. <<ENDIF>>
  141.  
  142.      OTHERWISE
  143.         sTheAction = '?'
  144.   ENDCASE
  145. RETURN(sTheAction)
  146.  
  147.  
  148. *************************
  149. PROCEDURE <<PROG_NAME>>_Action
  150. *************************
  151.  
  152.   DO CASE
  153.      CASE sAction = 'CLOSE'
  154.         sAction = ''
  155.  
  156. <<DO WHILE ACTIONS>>
  157.      CASE ExactMatch(sAction, '<<THE_NAME>>')
  158.         <<DO ACTION>>
  159. <<ENDDO>>
  160.   ENDCASE
  161. RETURN
  162.  
  163.  
  164. *************************
  165. FUNCTION ExactMatch()
  166. *************************
  167. PARAMETERS sVar1, sVar2
  168.  
  169.     lReturn = .F.
  170.     SET EXACT ON
  171.     lReturn = (sVar1 = sVar2)
  172.     SET EXACT OFF
  173. RETURN(lReturn)
  174.