home *** CD-ROM | disk | FTP | other *** search
/ Taifun Collection / Taifun_Collection_Vol_1.iso / richter / 8417 / 8417.mhs / RICHTER.DTP / CLP142 / !CLP142.EXE / CLPTEST.PRX < prev    next >
Text File  |  1993-07-01  |  45KB  |  987 lines

  1. *******************************************************************************
  2. *
  3. *         Program: CLPTEST.PRG
  4. *
  5. *:         System: ClpTest 1.42
  6. *:         Author: E. Schuster
  7. *:      Copyright (c) 1993, E. Schuster
  8. *:  Last modified: 07/03/93     12:56
  9. *
  10. *   Procs & Fncts: PD_SETUP
  11. *                : POP_SETUP
  12. *                : MY_FUNC()
  13. *                : POP101()
  14. *:               : POP10103()
  15. *                : POP105()
  16. *                : POP203()
  17. *                : POP205()
  18. *                : USERHELP
  19. *
  20. *           Calls: WIN_INIT       (procedure in CLPWINDW.PRG)
  21. *                : GET_DRIVE()    (function  in CLPFUNC2.PRG)
  22. *                : WIN_CREATE     (procedure in CLPWINDW.PRG)
  23. *                : MIDDLE()       (function  in CLPFUNC1.PRG)
  24. *                : WIN_MAIN       (procedure in CLPWINDW.PRG)
  25. *                : WIN_CLOSE      (procedure in CLPWINDW.PRG)
  26. *
  27. *:      Documented 07/03/93 at 12:58                SNAP!  version 4.02
  28. *******************************************************************************
  29.  
  30. msys = 'Datei, Programme, Optionen, Hilfe'
  31. DO win_init WITH msys, 4, 2, 1, 3, 10, 10
  32. *******************************************************************************
  33. *                                                                             *
  34. *  Win_Init: Initialisieren des Hauptmenüs, folgende Parameter müssen mit-    *
  35. *            gegeben werden:                                                  *
  36. *                                                                             *
  37. *  Menüzeile         Beispiel hier: 'Datei, Programme, Optionen, Hilfe'       *
  38. *  Anzahl Einträge   Beispiel hier: 4  (1. Datei, ...  4. Hilfe)              *
  39. *  Reihe             Beispiel hier: 2  (Menüzeile in der 2. Bildschirmzeile)  *
  40. *  Spalte            Beispiel hier: 1  (Menüzeile fängt in Spalte 1 an)       *
  41. *  Leerzeichen       Beispiel hier: 3  (3 Leerzeichen zwischen den Einträgen) *
  42. *  PullDown Einträge Beispiel hier: 10 (maximale Anzahl PullDown-Einträge)    *
  43. *  PopUpMenü Eintr.  Beispiel hier: 10 (maximale Anzahl PopUpMenü-Einträge)   *
  44. *                                                                             *
  45. *******************************************************************************
  46.  
  47. statfile = 'CLPTEST.STA'     && Datei mit den Statusmeldungen für PullDown-Menü
  48. pdshadow = .T.     && Auch Pull-Down-Menüs mit Schatten hinterlegen
  49. DEBUG = .T.        && Debug ein!  Wenn ausgeschaltet, Shareware-Hinweise
  50. box_hlp = 0        && Kein Rahmen bei Hilfeschirmen, Default = 1 (einfach)
  51. box_msg = 3        && gemischter Rahmen bei Meldungen, Default = 2 (doppelt)
  52. *******************************************************************************
  53. *                                                                             *
  54. *  Folgende Rahmen stehen zur Verfügung:                                      *
  55. *                                                                             *
  56. *      0 :  kein Rahmen                                                       *
  57. *      1 :  einfacher Rahmen   └───┘                                          *
  58. *      2 :  doppelter Rahmen   ╚═══╝                                          *
  59. *      3 :  gemischter Rahmen  ╙───╜                                          *
  60. *      4 :  gemischter Rahmen  ╘═══╛                                          *
  61. *                                                                             *
  62. *  Der Rahmen anderer PopUp-Fenster (Default = 2) kann wie folgt geändert     *
  63. *  werden:  'box_pop = 0 ... 4'                                               *
  64. *                                                                             *
  65. *  Folgende Variablen werden in Win_Init gesetzt und können hier beliebig     *
  66. *  geändert werden:                                                           *
  67. *                                                                             *
  68. *    Variablenname   Defaultwert          Bedeutung                           *
  69. *   ──────────────────────────────────────────────────────────────────────    *
  70. *    win_color       'W/B'                Farbe des Bildschirms               *
  71. *    titl_color      'W+/B'               Farbe der Überschrift               *
  72. *    sys_color       'N/W'                Farbe der Menüzeile                 *
  73. *    ssys_color      'W+/W'               Farbe des ersten Buchstabens        *
  74. *    hsys_color      'N/BG'               Farbe des Balkens                   *
  75. *    pull_color      'N/W,W+/B,,,B/W'     Farbe der PullDownMenüs             *
  76. *    high_color      'N/W,N/BG,,,N/BG'    Farbe der PopUp Screens             *
  77. *    pop_color       'N/BG,W+/B,,,B/BG'   Farbe der PopUp Menüs               *
  78. *    pbut_color      'W+/B'               Farbe der Push-Buttons              *
  79. *    msg_color       'N/R,W+/B'           Farbe der PopUp Fehlermeldungen     *
  80. *    help_color      'GR+/RB'             Farbe der Hilfeschirme              *
  81. *    shad_color      'N/N'                Farbe des Schattens                 *
  82. *    quit_color      'W/N'                Farbe nach Verlassen der Anwendung  *
  83. *    bye_color       'W+/B'               Farbe der Abschiedszeile            *
  84. *                                                                             *
  85. *    statfile        ''                   Datei mit den Hinweismeldungen      *
  86. *                                                                             *
  87. *    box_hlp         1                    Rahmen der Hilfeschirme             *
  88. *    box_msg         2                    Rahmen der Fehlermeldungen          *
  89. *    box_pop         2                    Rahmen anderer PopUp-Fenster        *
  90. *                                                                             *
  91. *    fkeys           ' F1=Hilfe...'       Funktionstastenzeile (Zeile 23)     *
  92. *                                                                             *
  93. *    quit_msg        ' Programm verlassen?  J/N'    Meldung bei Programmende  *
  94. *    canc_msg        ' Abbruch bestätigen:  J/N'    Meldung bei Abbruch       *
  95. *                                                                             *
  96. *    msgbeep         .T.                  Piepston bei Meldungen     ja/nein  *
  97. *    shadows         .T.                  Schatten unter PopUp's     ja/nein  *
  98. *    pdshadow        .F.                  Schatten unter PullDown's  ja/nein  *
  99. *    ctrl_ret        .F.                  Push-Button mit Ctrl+Enter ja/nein  *
  100. *    getloop         .F.                  Nach letztem GET zum 1.    ja/nein  *
  101. *    DEBUG           .F.                  Debug (Tracking)           ja/nein  *
  102. *                                                                             *
  103. *******************************************************************************
  104.  
  105. *******************************************************************************
  106. * Setzen eigener Variablen                                                    *
  107. *******************************************************************************
  108. mjn1 = '√'         && In dieser Beispiel-Anwendung wird damit gesteuert, ob
  109.                    && eine Dateneingabe bestätigt werden muß oder nicht.
  110. mjn2 = '√'         && Dieses Kennzeichen steuert den Piepston bei Meldungen
  111. mjn3 = '√'         && Dieses Kennzeichen steuert den Schatten unter PopUp's
  112. mjn4 = '√'         && Dieses Kennzeichen steuert den Schatten unter PullDown's
  113. mjn5 = '√'         && Dieses Kennzeichen definiert die Push-Button-Steuerung
  114.  
  115. mdir   = Curdir()
  116. mdir   = IF(EMPTY(mdir),'',Alltrim(mdir)+'\')
  117. mdrive = get_drive(mdir)
  118.  
  119. *******************************************************************************
  120. * Start des Hauptprogramms                                                    *
  121. *******************************************************************************
  122. anw_id   = 'CLP'
  123. anw_ver  = '1.42'
  124. anw_name = 'Demo der Clipper-Funktionen'
  125. anw_cr   = '(C) Copyright Erich Schuster 1993'
  126.  
  127. DO win_create WITH anw_id, anw_ver, anw_name
  128. *******************************************************************************
  129. *                                                                             *
  130. *  Win_Create: Damit wird der Bildschirm aufgebaut. Folgende Parameter müssen *
  131. *              mitgegeben werden:                                             *
  132. *                                                                             *
  133. *  Anwendungs ID     Beispiel hier: 'CLP', kann auch blank sein               *
  134. *  Version           Beispiel hier: '1.42'                                    *
  135. *  Anwendungsname    Beispiel hier: 'Demo der Clipper-Funktionen'             *
  136. *                                                                             *
  137. *  Nachdem der Bildschirm jetzt aufgebaut ist, können nun auch eigene Aus-    *
  138. *  gaben auf dem Bildschirm erfolgen.                                         *
  139. *                                                                             *
  140. *******************************************************************************
  141.  
  142. @ 4, 0 SAY middle('Das ist eine Demonstration der Clipper-Funktionen',80)
  143. @ 5, 0 SAY middle('- CLPWINDW mit CLPCOLOR -',80)
  144. @ 6, 0 SAY middle('- CLPFILES mit CLPFUNC1 und CLPFUNC2 -',80)
  145. @ 7, 0 SAY middle('- CLPNUMTO -',80)
  146.  
  147. DO win_main WITH 'my_func'
  148. *******************************************************************************
  149. *                                                                             *
  150. *  Win_Main: Diese Prozedur steuert nun den aufgebauten Bildschirm.           *
  151. *            Jede Aktion löst dabei einen Aufruf der mitgegebenen Funktion    *
  152. *            aus, welche individuell programmiert werden muß.                 *
  153. *                                                                             *
  154. *  Als Parameter mitgegeben werden muß der Name der zu verwendenden Anwender- *
  155. *  funktion. Beispiel hier: 'my_func'                                         *
  156. *                                                                             *
  157. *  Die Prozedur Win_Main ruft dann bei der Auswahl eines PullDown Eintrags    *
  158. *  die angegebene Anwenderfunktion (hier 'my_func') auf und übergibt dabei    *
  159. *  als Parameter die ID des gewählten Menüpunktes.                            *
  160. *                                                                             *
  161. *  Die ID setzt sich dabei wie folgt zusammen:                                *
  162. *                                                                             *
  163. *  Nummer des PullDown Menüs (10, 20, ... 90) und die 2-stellige Nummer       *
  164. *  des gewählten PullDown Menüeintrags (01, 02, ... 10) und gegebenenfalls    *
  165. *  die 2-stellige Nummer des Untermenü-Eintrags (01, 02, ... 10).             *
  166. *                                                                             *
  167. *      10             20             30        .....        90                *
  168. *   ┌─────────────────────────────────────────────────────────────────        *
  169. *   │ Datei          Programme      Optionen   .....                          *
  170. *   └──────────────┬─────────────┬────────────────────────────────────        *
  171. *              01  │ 1. Eintrag  │                                            *
  172. *              02  │ 2. Eintrag  ├──────────────────┐                         *
  173. *              03  │ 3. Eintrag │ Untermenüeintrag │ 01                      *
  174. *              04  │─────────────│ 2. Eintrag       │ 02                      *
  175. *              05  │ 5. Eintrag  ├──────────────────┘                         *
  176. *              06  │ 6. Eintrag  │                                            *
  177. *                  └─────────────┘                                            *
  178. *                                                                             *
  179. *  Beispiele: a)  1. Eintrag bei Optionen  :      ID = 2001                   *
  180. *             b)  2. Eintrag des Untermenüs:      ID = 200302                 *
  181. *             c)  6. Eintrag bei Optionen  :      ID = 2006                   *
  182. *                                                                             *
  183. *  Der prinzipielle Aufbau der Anwenderfunktion ist wie folgt:                *
  184. *                                                                             *
  185. *   ┌──────────────────────────────────────────────────────────────────       *
  186. *   │ FUNCTION my_func                                                        *
  187. *   │ PARAMETER menusel  &&  ID des gewählten PullDownMenü-Eintrags           *
  188. *   │ PRIVATE mreturn    &&  0 = Abbrechen   1 = Zurück   2 = Weiter          *
  189. *   │ mreturn = 1                                                             *
  190. *   │ DO CASE                                                                 *
  191. *   │ CASE menusel = xxxx                             && PopUp Screen         *
  192. *   │    pop_screen(menuid, x1, y1, x2, y2, box_pop, 'funktionsname')         *
  193. *   │ CASE menusel = xxxx                             && PopUp Menü           *
  194. *   │    mch = 1                                                              *
  195. *   │    DO WHILE .T.                                                         *
  196. *   │       mch = pop_menu(menuid, x1, y1, box_pop, mch)                      *
  197. *   │       DO CASE                                                           *
  198. *   │       CASE mch = 0                                                      *
  199. *   │          EXIT                                                           *
  200. *   │       CASE mch = 1                                                      *
  201. *   │          * 1. PopUp Menüauswahl                                         *
  202. *   │       CASE mch = 2                                                      *
  203. *   │          * 2. PopUp Menüauswahl                                         *
  204. *   │          * u.s.w.                                                       *
  205. *   │       ENDCASE                                                           *
  206. *   │    ENDDO T                                                              *
  207. *   │ CASE menusel = xxxx                             && Ende der Anwendung   *
  208. *   │    IF pop_msg(pop_color,box_msg,quit_msg,frage) && Bestätigung          *
  209. *   │       mreturn = 0                                                       *
  210. *   │    ENDIF                                                                *
  211. *   │ OTHERWISE                                                               *
  212. *   │    mreturn = 2                                  && Weiter               *
  213. *   │ ENDCASE                                                                 *
  214. *   │ RETURN mreturn                                                          *
  215. *   └──────────────────────────────────────────────────────────────────       *
  216. *                                                                             *
  217. *  Für jeden definierten PullDown Menüeintrag muß ein CASE-Zweig existieren,  *
  218. *  wo definiert ist, was da getan werden soll.                                *
  219. *                                                                             *
  220. *******************************************************************************
  221.  
  222. DO win_close WITH 'CLPTEST '+anw_ver+' - '+anw_name+'   '+anw_cr
  223. *******************************************************************************
  224. *                                                                             *
  225. *  Win_Close: Beendet die Anwendung und zeigt die Abschiedszeile an, welche   *
  226. *             als Parameter mitgegeben wird.                                  *
  227. *                                                                             *
  228. *******************************************************************************
  229.  
  230. *******************************************************************************
  231. *                                                                             *
  232. *  Bis hierher geht das Hauptprogramm.                                        *
  233. *  Nun folgen die benötigten Prozeduren und Funktionen zur Steuerung der      *
  234. *  Anwendung.                                                                 *
  235. *                                                                             *
  236. *******************************************************************************
  237.  
  238. *******************************************************************************
  239. *
  240. *       Procedure: PD_SETUP
  241. *
  242. *       Called by: PD_MENU()      (function  in CLPWINDW.PRG)
  243. *                : PD_MENU2()     (function  in CLPWINDW.PRG)
  244. *
  245. *
  246. *  Diese Prozedur definiert die PullDown Menüs, wobei für jedes Menü ein
  247. *  CASE-Zweig existieren muß, in welchem die einzelnen Menüeinträge be-
  248. *  schrieben sind.
  249. *
  250. *  Dabei wird der Inhalt jeder Menüzeile in die entsprechende Variable
  251. *  'pull_down[xx]' zugewiesen.
  252. *  Menüeinträge, welche (noch) nicht ausgewählt werden können, können
  253. *  durch die Variable 'pd_valid[xx] = .F.' inaktiviert werden.
  254. *
  255. *  Wenn gewünscht kann auf Zeile 23 zu jedem Menüeintrag ein Hinweis er-
  256. *  scheinen. Diese Hinweise müssen dann in einer beliebigen Datei stehen,
  257. *  der Dateiname muß der Variablen STATFILE zugewiesen werden.
  258. *  Die Zuordnung der einzelnen Hinweise zu den Menüeinträgen erfolgt dann
  259. *  über die entsprechende Variable 'pd_hilfe[xx]'.
  260. *  Beispiel:  'pd_hilfe[01] = 1'  weist dem Menüpunkt 1 den Hinweistext
  261. *                                 der ersten Zeile in der Datei zu.
  262. *
  263. *  Wenn ein Menüeintrag ein Untermenü aufrufen soll, dann muß der ent-
  264. *  sprechende Menüeintrag ganz rechts das Zeichen '' haben.
  265. *  Das dazugehörige Untermenü muß auch hier definiert werden, wobei sich
  266. *  die MenüID aus der Nummer des PullDown-Menüs und dem Menüeintrag
  267. *  zusammensetzt.
  268. *
  269. *  Siehe Beispiel 'weitere Optionen' im PullDown-Menü 3 'Optionen' !
  270. *  MenüID des Untermenüs = '202'  (PullDown Nr. 2  +  Eintrag 02)
  271. *
  272. *******************************************************************************
  273. PROCEDURE pd_setup
  274. PARAMETER menuid
  275.  
  276. DO CASE
  277.  
  278.    &&------------------------------------------------------------------------&&
  279.    && PULL-DOWN-MENU 1  'Datei'
  280.    &&------------------------------------------------------------------------&&
  281. CASE menuid = 1
  282.    pull_down[01] = ' Pop-Up Screen 101 ...  F5 '
  283.    pull_down[02] = ' Pop-Up Menu   102 ...  F6 '
  284.    pull_down[03] = '───────────────────────────'
  285.    pd_valid[03]  = .F.
  286.    pull_down[04] = ' Pop-Up Screen 104 ...     '
  287.    pull_down[05] = ' Pop-Up Screen 105 ...     '
  288.    pull_down[06] = '───────────────────────────'
  289.    pd_valid[06]  = .F.
  290.    pull_down[07] = ' Programm beenden       F3 '
  291.  
  292.    pd_hilfe[01] = 1
  293.    pd_hilfe[02] = 2
  294.    pd_hilfe[04] = 3
  295.    pd_hilfe[05] = 4
  296.    pd_hilfe[07] = 5
  297.  
  298.    &&------------------------------------------------------------------------&&
  299.    && PULL-DOWN-MENU 2  'Programme'
  300.    &&------------------------------------------------------------------------&&
  301. CASE menuid = 2
  302.    pull_down[01] = ' Verzeichnis...   Strg+V '
  303.    pull_down[02] = '─────────────────────────'
  304.    pd_valid[02]  = .F.
  305.    pull_down[03] = ' Zahlen umsetzen...      '
  306.    pull_down[04] = '─────────────────────────'
  307.    pd_valid[04]  = .F.
  308.    pull_down[05] = ' Datumsroutinen...       '
  309.    pull_down[06] = '─────────────────────────'
  310.    pd_valid[06]  = .F.
  311.    pull_down[07] = ' Dateien anschauen       '
  312.  
  313.    pd_hilfe[01] = 6
  314.    pd_hilfe[03] = 7
  315.    pd_hilfe[05] = 8
  316.    pd_hilfe[07] = 9
  317.  
  318.    &&------------------------------------------------------------------------&&
  319.    && PULL-DOWN-MENU 3  'Optionen'
  320.    &&------------------------------------------------------------------------&&
  321. CASE menuid = 3
  322.    pull_down[01] = ' Farben ändern...  Strg+F '
  323.    pull_down[02] = ' weitere Optionen        '
  324.    pull_down[03] = '──────────────────────────'
  325.    pd_valid[03]  = .F.
  326.    pull_down[04] = ' Optionen sichern         '
  327.  
  328.    pd_hilfe[01] = 10
  329.    pd_hilfe[02] = 11
  330.    pd_hilfe[04] = 12
  331.  
  332.    &&------------------------------------------------------------------------&&
  333.    && PULL-DOWN-MENU 302
  334.    &&------------------------------------------------------------------------&&
  335. CASE menuid = 302
  336.    pull_down[01] = mjn1+' Automatischer Cursorsprung  '
  337.    pull_down[02] = mjn2+' Warnton bei den Meldungen   '
  338.    pull_down[03] = mjn3+' Schatten bei PopUp-Fenstern '
  339.    pull_down[04] = mjn4+' Schatten bei PullDown-Menüs '
  340.    pull_down[05] = mjn5+' Push-Button mit Eingabetaste'
  341.  
  342.    pd_hilfe[01] = 13
  343.    pd_hilfe[02] = 14
  344.    pd_hilfe[03] = 15
  345.    pd_hilfe[04] = 16
  346.    pd_hilfe[05] = 17
  347.  
  348.    &&------------------------------------------------------------------------&&
  349.    && PULL-DOWN-MENU 4  'Hilfe'
  350.    &&------------------------------------------------------------------------&&
  351. CASE menuid = 4
  352.    pull_down[01] = ' Allgemeine Hilfe...  '
  353.    pull_down[02] = ' Hilfe für Tasten...  '
  354.    pull_down[03] = '──────────────────────'
  355.    pd_valid[03]  = .F.
  356.    pull_down[04] = ' Über "'+anw_id+' '+anw_ver+'"... '
  357.    pull_down[05] = '──────────────────────'
  358.    pd_valid[05]  = .F.
  359.    pull_down[06] = ' Shareware-Hinweis... '
  360.  
  361.    pd_hilfe[01] = 18
  362.    pd_hilfe[02] = 19
  363.    pd_hilfe[04] = 20
  364.    pd_hilfe[06] = 21
  365.  
  366. ENDCASE
  367. RETURN
  368.  
  369. *******************************************************************************
  370. *
  371. *       Procedure: POP_SETUP
  372. *
  373. *       Called by: POP_SCREEN()   (function  in CLPWINDW.PRG)
  374. *                : POP_MENU()     (function  in CLPWINDW.PRG)
  375. *!               : POP101()       (function  in CLPTEST.PRG)
  376. *
  377. *
  378. *  Diese Prozedur definiert die PopUp-Screens und die PopUp-Menüs.
  379. *  Dabei existiert wieder für jeden Screen und Menü ein CASE-Zweig.
  380. *
  381. *  Die MenüID setzt sich aus der Nummer des PullDown-Menüs und dem
  382. *  zum PopUp-Screen/-Menü gehörenden Menüeintrag zusammen.
  383. *
  384. *  PopUp-Screens:
  385. *  --------------
  386. *  pop_title  : Titel des entsprechenden PopUp-Screens
  387. *  pop_bot1/2 : Die dazugehörigen Push-Buttons
  388. *  pbut_activ : Die Nummer des beim Aufruf aktiven Push-Buttons
  389. *
  390. *  PopUp-Menüs:
  391. *  ------------
  392. *  pop_opt[x]   : Menüeinträge (Menüzeilen)
  393. *  pop_valid[x] : inaktive Einträge = .F.
  394. *  pop_bot1/2   : Die dazugehörigen Push-Buttons
  395. *  pbut_activ   : Die Nummer des beim Aufruf aktiven Push-Buttons
  396. *
  397. *******************************************************************************
  398. PROCEDURE  pop_setup
  399. PARAMETERS menuid
  400.  
  401. DO CASE
  402.  
  403.    &&------------------------------------------------------------------------&&
  404.    && POP_UP_SCREEN 101
  405.    &&------------------------------------------------------------------------&&
  406. CASE menuid = 101
  407.    pop_title  = 'Pop-Up Screen 101'
  408.    pop_bot1   = ''
  409.    pop_bot2   = ' <Sichern>  <Abbrechen>  <Pop-Up> '
  410.    pbut_activ = 1
  411.  
  412.    &&------------------------------------------------------------------------&&
  413.    && POP_UP_SCREEN 10103
  414.    &&------------------------------------------------------------------------&&
  415. CASE menuid = 10103
  416.    pop_title  = 'Pop-Up Screen 10103'
  417.    pop_bot1   = ''
  418.    pop_bot2   = ' <OK>  <Abbrechen> '
  419.    pbut_activ = 1
  420.  
  421.    &&------------------------------------------------------------------------&&
  422.    && POP_UP_SCREEN 102
  423.    &&------------------------------------------------------------------------&&
  424. CASE menuid = 102
  425.    pop_opt[1] = ' 1. Das ist ein Beispiel '
  426.    pop_opt[2] = ' 2. für ein PopUp Menü!  '
  427.    pop_opt[3] = '─────────────────────────'
  428.    pop_valid[3] = .F.
  429.    pop_opt[4] = ' 4. Datei Drucken        '
  430.    pop_opt[5] = '─────────────────────────'
  431.    pop_valid[5] = .F.
  432.    pop_bot1   = ''
  433.    pop_bot2   = ' <OK>  <Abbrechen> '
  434.    pbut_activ = 1
  435.  
  436.    &&------------------------------------------------------------------------&&
  437.    && POP_UP_SCREEN 105
  438.    &&------------------------------------------------------------------------&&
  439. CASE menuid = 105
  440.    pop_title  = 'Pop-Up Screen 105  (über den ganzen Bildschirm)'
  441.    pop_bot1   = ''
  442.    pop_bot2   = ' <OK> '
  443.    pbut_activ = 1
  444.  
  445.    &&------------------------------------------------------------------------&&
  446.    && POP_UP_SCREEN 203
  447.    &&------------------------------------------------------------------------&&
  448. CASE menuid = 203
  449.    pop_title  = 'Zahlen umsetzen'
  450.    pop_bot1   = ''
  451.    pop_bot2   = ' <Deutsche Form>  <Amerikanisch>  <In Worten>  <Abbrechen> '
  452.    pbut_activ = 1
  453.  
  454.    &&------------------------------------------------------------------------&&
  455.    && POP_UP_SCREEN 205
  456.    &&------------------------------------------------------------------------&&
  457. CASE menuid = 205
  458.    pop_title  = 'Datumsroutinen'
  459.    pop_bot1   = ''
  460.    pop_bot2   = ' <OK> '
  461.    pbut_activ = 1
  462.  
  463. ENDCASE
  464. RETURN
  465.  
  466. *******************************************************************************
  467. *
  468. *        Function: MY_FUNC()
  469. *
  470. *           Calls: POP_SCREEN()   (function  in CLPWINDW.PRG)
  471. *                : STR_PAD()      (function  in CLPFUNC1.PRG)
  472. *                : POP_MENU()     (function  in CLPWINDW.PRG)
  473. *                : SHOW_MSG()     (function  in CLPFUNC1.PRG)
  474. *                : POP_MSG()      (function  in CLPWINDW.PRG)
  475. *                : FILELIST()     (function  in CLPFILES.PRG)
  476. *                : MIDDLE()       (function  in CLPFUNC1.PRG)
  477. *                : NUM2WORD()     (function  in CLPNUMTO.PRG)
  478. *                : DATUM()        (function  in CLPFUNC1.PRG)
  479. *                : SEL_ONE()      (function  in CLPFUNC1.PRG)
  480. *                : FILEBROWSE()   (function  in CLPFILES.PRG)
  481. *                : WIN_COLOR      (procedure in CLPCOLOR.PRG)
  482. *                : WIN_HELP       (procedure in CLPWINDW.PRG)
  483. *
  484. *
  485. *  Das ist die Anwenderfunktion, welche die Aktionen zu sämtlichen
  486. *  PullDown Menüeinträgen enthält.
  487. *
  488. *  Hier können eigene Logik, eigene Funktionen und Prozeduren eingebaut
  489. *  werden. Es können aber auch folgende Prozeduren aus CLPWINDW sowie
  490. *  die Funktion WIN_COLOR aus CLPCOLOR zur Farbenänderung verwendet werden.
  491. *  Außerdem, wenn mitgelinkt, sämtliche Funktionen aus CLPFUNC1, CLPFUNC2 und
  492. *  CLPNUMTO.
  493. *
  494. *  1.) Funktion 'Pop_Screen'
  495. *
  496. *  Die Funktion 'POP_SCREEN' erstellt einen PopUp-Screen, der vorher in
  497. *  'POP_SETUP' definiert worden sein muß.
  498. *  Es wird der Name einer Funktion mitgegeben, in welcher der auszuführende
  499. *  Code zu dem PopUp-Screen steht.
  500. *
  501. *  Aufruf:
  502. *  Pop_Screen( menuid, x1, y1, x2, y2, rahmen, 'funktionsname' )
  503. *
  504. *  menuid        : die definierte ID des betreffenden Screens in 'POP_SETUP'
  505. *  x1            : die Koordinaten des Screens oben    (    0 - 19 )
  506. *  y1            :                             rechts  (    0 - 69 )
  507. *  x2            :                             unten   ( x1+6 - 24 )
  508. *  y2            :                             links   ( y1+6 - 79 )
  509. *  rahmen        : der Rahmen um den Screen (0 ... 4)
  510. *  funktionsname : der Name der auszuführenden Funktion
  511. *
  512. *  2.) Funktion 'Pop_Menu'
  513. *
  514. *  Die Funktion 'POP_MENU' erstellt ein PopUp-Menü, welches vorher in
  515. *  'POP_SETUP' definiert worden sein muß.
  516. *  Die Funktion bringt einen Returncode zurück, welcher angibt, welche
  517. *  Menüzeile ausgewählt wurde.
  518. *
  519. *  Aufruf:
  520. *  variable = Pop_Menu( menuid, x1, y1, rahmen )
  521. *
  522. *  variable      : der Returncode, welcher den gewählten Menüpunkt angibt
  523. *  menuid        : die definierte ID des betreffenden Menüs in 'POP_SETUP'
  524. *  x1            : die Koordinaten des Menüs oben      ( 0 - 19 )
  525. *  y1            :                           rechts    ( 0 - 69 )
  526. *  rahmen        : der Rahmen um das Menü (0 ... 4)
  527. *
  528. *  Die Größe des Menüs und damit die untere linke Ecke ergibt sich aus
  529. *  der Anzahl und Länge der in 'POP_SETUP' definierten Menüeinträge.
  530. *
  531. *  3.) Funktion 'Pop_Msg'
  532. *
  533. *  Die Funktion 'POP_MSG' kreiert eine PopUp-Fehlermeldung.
  534. *  Bei der Version b) bringt die Funktion True (.T.) bei 'Ja' und
  535. *  False (.F.) bei 'Nein' zurück.
  536. *
  537. *  Aufruf:
  538. *  a) Pop_Msg ( farbe, rahmen, text )
  539. *     PopUp-Meldung mit OK-Button
  540. *
  541. *  b) IF  Pop_Msg ( text, farbe, rahmen, frage )   .....   ENDIF
  542. *     PopUp-Meldung mit <Ja> und <Nein> Buttons
  543. *
  544. *  text          : der Text der Fehlermeldung
  545. *  farbe         : die zu verwendende Farbe (msg_color, pop_color, ...)
  546. *  rahmen        : der Rahmen um die Meldung (0 ... 4)
  547. *
  548. *  4.) Prozedur 'Win_Help'
  549. *
  550. *  Die Prozedur 'WIN_HELP' erlaubt die Handhabung von feldbezogenen
  551. *  Hilfeschirmen. Das heißt, bei F1 erscheint  - sofern vorhanden -
  552. *  immer ein Hilfeschirm zu dem Feld, in welchem sich gerade der Cursor
  553. *  befindet.
  554. *  Das funktioniert in der Regel schon automatisch, weil bei Betätigen
  555. *  der F1-Taste 'WIN_HELP' mit Funktionsname und Feldname aufgerufen wird.
  556. *
  557. *  In besonderen Fällen (wie hier, wo die Hilfe nicht über F1 sondern
  558. *  als Menüpunkt aufgerufen werden soll) kann aber die Funktion 'WIN_HELP'
  559. *  selbst aufgerufen werden.
  560. *
  561. *  Weitere Informationen zu 'WIN_HELP' entnehmen Sie bitte der Dokumentation!
  562. *
  563. *  5.) Funktion 'Win_Color' (aus CLPCOLOR.OBJ)
  564. *
  565. *  Die Funktion 'WIN_COLOR' erlaubt die Änderung der in der Anwendung
  566. *  verwendeten Farben. Dabei werden einfach die in 'WIN_INIT' definierten
  567. *  Variablen für die Farben (xxxx_color) überschrieben.
  568. *
  569. *  WICHTIG: Damit die Funktion laufen kann, müssen auch sämtliche Funktionen
  570. *           von 'CLPWINDW.OBJ' zur Verfügung stehen (also gelinkt sein) !
  571. *
  572. *  Aufruf:
  573. *  DO Win_Color WITH anw_id, anw_rel, anw_name
  574. *
  575. *  anw_id, anw_rel, anw_name : Anwendungs ID, Version und Anwendungsname
  576. *  Hier sollten die gleichen Werte wie bei 'WIN_CREATE' mitgegeben werden.
  577. *
  578. *  Weitere Beschreibungen zu sämtlichen Funktionen entnehmen Sie bitte der
  579. *  Kurzdokumentation 'CLP.DOC'
  580. *
  581. *******************************************************************************
  582. FUNCTION my_func
  583. PARAMETER menusel            &&  ID des gewählten PullDownMenü-Eintrags
  584. PRIVATE mreturn              &&  0 = Abbrechen   1 = Zurück   2 = Weiter
  585. PRIVATE mch, mstat, Savescr, mret
  586. mreturn = 1
  587. DO CASE
  588. CASE menusel = 1001 .OR. menusel = -4            && Auswahl 1001 oder F5
  589.    getloop = .T.     && Legt fest, daß in diesem PopUp-Schirm der Cursor nach
  590.    *                    dem letzten GET wieder zum ersten geht.
  591.    *                    Das ist nur relevant bei Ctrl_Ret = .T., weil dann die
  592.    *                    Eingabetaste zum nächsten GET springt, beim letzten GET
  593.    *                    allerdings der markierte Push-Button aktiviert würde,
  594.    *                    wenn GetLoop = .F. wäre.
  595.    pop_screen(101, 5, 12, 18, 50, box_pop, 'POP101')
  596.    getloop = .F.     && Bei allen anderen Schirmen aktiviert die Eingabetaste
  597.    *                    den Push-Button, auch wenn Ctrl_Ret = .T. ist.
  598.    @ 12, 3 SAY 'PopUp-'
  599.    @ 13, 3 SAY 'Screen'
  600. CASE menusel = 1002 .OR. menusel = -5            && Auswahl 1002 oder F6
  601.    mch = 1
  602.    @  9, 45 SAY str_pad('PopUp Menü',30)
  603.    @ 10, 45 SAY SPACE(28)
  604.    DO WHILE .T.
  605.       menu_id = 102          && Identifizierung für die Hilfedatenbank
  606.       mch = pop_menu(102, 8, 15, box_pop, mch)
  607.       DO CASE
  608.       CASE mch = 0
  609.          @ 10, 45 SAY str_pad('Fertig!',30)
  610.          EXIT
  611.       CASE mch = 1
  612.          @ 10, 45 SAY str_pad('Das war der 1. Menüpunkt...',30)
  613.       CASE mch = 2
  614.          @ 10, 45 SAY str_pad('... und das der 2. !',30)
  615.       CASE mch = 4
  616.          * Datei Drucken
  617.          IF .NOT. Isprinter()
  618.             show_msg(29, msg_color)
  619.             @ 10, 45 SAY str_pad('Druckversuch mißglückt!',30)
  620.          ELSE
  621.             @ 10, 45 SAY str_pad('Jetzt wird gedruckt...',30)
  622.          ENDIF
  623.       ENDCASE
  624.    ENDDO T
  625. CASE menusel = 1004
  626.    mstat = 'PopUp-Messages und vieles andere mehr!  Weiter...'
  627.    Savescr = STATUS(mstat, pop_color, box_pop, 10)
  628.    INKEY(0)
  629.    RESTORE SCREEN FROM Savescr
  630.    @  9, 18 SAY 'PopUp Messages,'
  631.    @ 10, 18 SAY 'Bestätigungen, '
  632.    @ 11, 18 SAY 'und anderes!!! '
  633. CASE menusel = 1005
  634.    pop_screen(105, 0, 0, 24, 79, box_pop, 'POP105')
  635. CASE menusel = 1007                              && Ende der Anwendung
  636.    IF pop_msg(quit_msg, pop_color, box_msg, frage)
  637.       mreturn = 0
  638.    ENDIF
  639. CASE menusel = 2001 .OR. menusel = 22
  640.    filelist(mdrive, mdir, '*', 1, box_pop, 4, 22)
  641.    @ 20, 0 SAY middle('Dateienhandling mit Clipper: Filelist()',80)
  642. CASE menusel = 2003
  643.    pop_screen(203, 6, 4, 18, 74, box_pop, 'POP203')
  644.    @ 16, 0 SAY middle('Zahlen umsetzen: '+num2word(10),80)
  645. CASE menusel = 2005
  646.    pop_screen(205, 6, 11, 19, 65, box_pop, 'POP205')
  647.    @ 18, 0 SAY middle('Datumsroutine: '+datum(6, CTOD('01.01.1992')),80)
  648.    mreturn = 2
  649. CASE menusel = 2007
  650.    SAVE SCREEN TO Savescr
  651.    mch = sel_one(1, 14, 13, win_color+','+ssys_color, 2, ;
  652.       'Autoexec.Bat', 'Config.Sys', 'Dummy', 'Auswahl 4', '5', '6', '7', '8')
  653.    RESTORE SCREEN FROM Savescr
  654.    DO CASE
  655.    CASE mch = 0
  656.       @ 14, 0 SAY middle('Auswahl abgebrochen!',80)
  657.    CASE mch = 1
  658.       filebrowse('C:\AUTOEXEC.BAT', 1)
  659.       @ 14, 0 SAY middle("Filebrowse('C:\AUTOEXEC.BAT')",80)
  660.    CASE mch = 2
  661.       filebrowse('C:\CONFIG.SYS')
  662.       @ 14, 0 SAY middle("Filebrowse('C:\CONFIG.SYS')",80)
  663.    CASE mch = 3
  664.       mret = filebrowse('dummy', 4)
  665.       IF mret > 0
  666.          pop_msg('Datei nicht vorhanden oder zu groß!')
  667.       ENDIF
  668.       @ 14, 0 SAY SPACE(80)
  669.    OTHERWISE
  670.       @ 14, 0 SAY middle('Auswahl Nr.'+Alltrim(STR(mch))+' ausgewählt!',80)
  671.    ENDCASE
  672.    mreturn = 2
  673. CASE menusel = 3001 .OR. menusel = 6             && Auswahl 3001 oder Strg+F
  674.    DO win_color WITH anw_id, anw_ver, anw_name   && Option 'Farben ändern'
  675.    mreturn = 2
  676. CASE menusel = 300201                            && Untermenüeintrag 01
  677.    mjn1 = IF(EMPTY(mjn1),'√', ' ')
  678.    IF EMPTY(mjn1)
  679.       SET CONFIRM ON
  680.    ELSE
  681.       SET CONFIRM OFF
  682.    ENDIF
  683.    mreturn = 2
  684. CASE menusel = 300202                            && Untermenüeintrag 02
  685.    mjn2 = IF(EMPTY(mjn2),'√', ' ')
  686.    msgbeep = .NOT. EMPTY(mjn2)
  687.    mreturn = 2
  688. CASE menusel = 300203                            && Untermenüeintrag 03
  689.    mjn3 = IF(EMPTY(mjn3),'√', ' ')
  690.    shadows = .NOT. EMPTY(mjn3)
  691.    mreturn = 2
  692. CASE menusel = 300204                            && Untermenüeintrag 04
  693.    mjn4 = IF(EMPTY(mjn4),'√', ' ')
  694.    pdshadow = .NOT. EMPTY(mjn4)
  695.    mreturn = 2
  696. CASE menusel = 300205                            && Untermenüeintrag 05
  697.    mjn5 = IF(EMPTY(mjn5),'√', ' ')
  698.    ctrl_ret = EMPTY(mjn5)
  699.    mreturn = 2
  700. CASE menusel = 3004
  701.    mstat = 'Sicherung ist hier nicht möglich!  Weiter...'
  702.    Savescr = STATUS(mstat, msg_color, box_msg)
  703.    INKEY(0)
  704.    RESTORE SCREEN FROM Savescr
  705. CASE menusel = 4001                              && Allgemeine Hilfe
  706.    DO win_help WITH 'userhelp', 'CLPTEST'
  707.    mreturn = 2
  708. CASE menusel = 4002                              && Hilfe zu Tasten
  709.    DO win_help WITH 'userhelp', 'TASTEN'
  710.    mreturn = 2
  711. CASE menusel = 4004                              && Über CLP 1.42
  712.    DO win_help WITH 'userhelp', 'ABOUT'
  713.    mreturn = 2
  714. CASE menusel = 4006                              && Shareware-Hinweis
  715.    DO win_help WITH 'userhelp', 'SHARE'
  716.    mreturn = 2
  717. OTHERWISE
  718.    mreturn = 2
  719. ENDCASE
  720. RETURN mreturn
  721.  
  722. *******************************************************************************
  723. *
  724. *        Function: POP101()
  725. *
  726. *           Calls: VAL_STR()      (function  in CLPFUNC1.PRG)
  727. *                : POP_MSG()      (function  in CLPWINDW.PRG)
  728. *                : SHOW_MSG()     (function  in CLPFUNC1.PRG)
  729. *!               : POP_SCREEN()   (function  in CLPWINDW.PRG)
  730. *!               : POP_SETUP      (procedure in CLPTEST.PRG)
  731. *
  732. *
  733. *  Diese Funktion ist ebenfalls eine Anwenderfunktion. Sie wird von der
  734. *  Funktion 'POP_SCREEN' aufgerufen und beinhaltet die Logik zu dem
  735. *  betreffenden Screen.
  736. *
  737. *  Es ist zu beachten, daß diese Funktion von 'POP_SCREEN' mehrmals! auf-
  738. *  gerufen wird. Und zwar zunächst einmal zum Aufbau des Bildschirms
  739. *  mit einem Parameter 'READ'. Dann nochmal für jedes Betätigen der Eingabe-
  740. *  taste, wobei der Parameter 'PUSH' und der Code des Push-Buttons mitgegeben
  741. *  werden.
  742. *  Das heißt also, je nachdem, welcher Push-Button gerade der aktive ist
  743. *  (gekennzeichnet durch den farbigen Balken) wird ein Code bei Betätigen
  744. *  der Eingabetaste ( = Push-Button ) an diese Funktion übergeben.
  745. *
  746. *******************************************************************************
  747. FUNCTION pop101
  748. PARAMETER maction, pbut
  749. PRIVATE mreturn              &&  1 = Zurück   2 = Weiter
  750. mreturn = 2
  751. IF maction = 'READ'
  752.    IF TYPE("mfeld1") = 'U'   && Feld 'mfeld1' noch nicht bekannt
  753.       PUBLIC mfeld1, mfeld2, mfeld3
  754.       mfeld1 = SPACE(20)
  755.       mfeld2 = SPACE(8)
  756.       mfeld3 = SPACE(8)
  757.    ENDIF
  758.    @  9, 14 SAY 'Eingabefeld1:'
  759.    @  9, 28 GET mfeld1
  760.    @ 11, 14 SAY 'Feld2:             Feld3:'
  761.    @ 11, 21 GET mfeld2
  762.    @ 11, 40 GET mfeld3
  763.    @ 13, 14 SAY 'Das ist ein Beispiel für einen'
  764.    @ 14, 14 SAY 'PopUp Screen mit Eingabefeldern!'
  765.    READ
  766. ELSEIF maction = 'PUSH'
  767.    DO CASE
  768.    CASE pbut = 1             && 1. Push-Button  (Sichern)
  769.       mret = val_str(mfeld1, 'ANUM')
  770.       DO CASE
  771.       CASE mret = 0          && Eingabe OK
  772.          pop_msg('Eingabe verarbeitet!', pop_color, box_pop)
  773.          mreturn = 1
  774.       CASE mret = 1          && Eingabefeld leer
  775.          show_msg(1, msg_color)
  776.       CASE mret = 2          && Eingabe falsch (nicht alphanumerisch)
  777.          show_msg(6, msg_color)
  778.       ENDCASE
  779.    CASE pbut = 2             && 2. Push-Button  (Abbrechen)
  780.       IF CONFIRM(canc_msg, msg_color, box_msg, 12)
  781.          mreturn = 1
  782.       ENDIF
  783.    CASE pbut = 3             && 3. Push-Button  (Pop-Up)
  784.       getloop = .F.
  785.       pop_screen(10103, 8, 17, 15, 45, box_pop, 'POP10103')
  786.       getloop = .T.
  787.       DO pop_setup WITH 101
  788.       pbut_activ = 3
  789.    ENDCASE
  790. ENDIF
  791. RETURN mreturn
  792.  
  793. *******************************************************************************
  794. *
  795. *        Function: POP10103()
  796. *
  797. *******************************************************************************
  798. FUNCTION pop10103
  799. PARAMETER maction, pbut
  800. PRIVATE mreturn              &&  1 = Zurück   2 = Weiter
  801. PRIVATE dummy
  802. mreturn = 2
  803. IF maction = 'READ'
  804.    dummy = ' '
  805.    @ 11, 21 SAY "Das ist ein zweiter"
  806.    @ 12, 21 SAY "Pop-Up-Schirm" GET dummy
  807.    READ
  808. ELSEIF maction = 'PUSH'
  809.    DO CASE
  810.    CASE pbut = 1             && 1. Push-Button  (Sichern)
  811.       mreturn = 1
  812.    CASE pbut = 2             && 2. Push-Button  (Abbrechen)
  813.       IF CONFIRM(canc_msg, msg_color, box_msg, 12)
  814.          mreturn = 1
  815.       ENDIF
  816.    ENDCASE
  817. ENDIF
  818. RETURN mreturn
  819.  
  820. *******************************************************************************
  821. *
  822. *        Function: POP105()
  823. *
  824. *******************************************************************************
  825. FUNCTION pop105
  826. PARAMETER maction, pbut
  827. PRIVATE mreturn              &&  1 = Zurück   2 = Weiter
  828. mreturn = 2
  829. IF maction = 'READ'
  830.    @  5, 18 SAY "Das ist ein großer leerer Bildschirm!"
  831.    @ 10, 18 SAY "Da gibt es sehr viel Platz für Eingaben"
  832.    @ 15, 18 SAY "und das ist doch gut so, oder nicht?"
  833.    INKEY(0)
  834. ELSEIF maction = 'PUSH'
  835.    mreturn = 1
  836. ENDIF
  837. RETURN mreturn
  838.  
  839. *******************************************************************************
  840. *
  841. *        Function: POP203()
  842. *
  843. *           Calls: SHOW_MSG()     (function  in CLPFUNC1.PRG)
  844. *                : VAL_STR()      (function  in CLPFUNC1.PRG)
  845. *                : NUM2STR()      (function  in CLPNUMTO.PRG)
  846. *                : NUM2WORD()     (function  in CLPNUMTO.PRG)
  847. *
  848. *******************************************************************************
  849. FUNCTION pop203
  850. PARAMETER maction, pbut
  851. PRIVATE mreturn              &&  1 = Zurück   2 = Weiter
  852. mreturn = 2
  853. IF maction = 'READ'
  854.    IF TYPE("mzahl1") = 'U'   && Feld 'mzahl1' noch nicht bekannt
  855.       PUBLIC mzahl1
  856.       mzahl1 = 0.00
  857.    ENDIF
  858.    @ 10,  8 SAY 'Zahl eingeben:'
  859.    @ 10, 24 GET mzahl1
  860.    @ 10, 42 SAY 'String:'
  861.    @ 12,  8 SAY 'Worte:'
  862.    READ
  863. ELSEIF maction = 'PUSH'
  864.    mok = .F.
  865.    IF pbut = 1 .OR. pbut = 2 .OR. pbut = 3
  866.       IF EMPTY(mzahl1)       && Eingabefeld leer
  867.          show_msg(1, msg_color)
  868.       ELSE
  869.          mret = val_str(Alltrim(STR(mzahl1)), 'STR', 'NUM.')
  870.          DO CASE
  871.          CASE mret = 0       && Eingabe OK
  872.             mok = .T.
  873.             @ 10, 50 SAY SPACE(18)
  874.             @ 12, 16 SAY SPACE(58)
  875.             @ 13, 16 SAY SPACE(58)
  876.             @ 14, 16 SAY SPACE(58)
  877.          CASE mret = 2       && Eingabe falsch (nicht numerisch)
  878.             show_msg(2, msg_color)
  879.          ENDCASE
  880.       ENDIF
  881.    ENDIF
  882.    DO CASE
  883.    CASE pbut = 1 .AND. mok   && 1. Push-Button  (Deutsche Form)
  884.       @ 10, 50 SAY num2str(mzahl1, 2, 0)
  885.    CASE pbut = 2 .AND. mok   && 2. Push-Button  (Amerikanisch)
  886.       @ 10, 50 SAY num2str(mzahl1, 2, 1)
  887.    CASE pbut = 3 .AND. mok   && 3. Push-Button  (In Worten)
  888.       mworte = num2word(mzahl1, ' ')
  889.       IF LEN(mworte) > 56
  890.          mcut1 = Rat(' ',mworte)
  891.          mworte1 = LEFT(mworte,mcut1-1)
  892.          IF LEN(mworte1) > 54
  893.             mcut2 = Rat(' ',mworte1)
  894.             mworte1 = LEFT(mworte1,mcut2-1)+' -'
  895.             mworte2 = SUBSTR(LEFT(mworte,mcut1-1),mcut2+1)+' -'
  896.             mworte3 = SUBSTR(mworte,mcut1+1)
  897.          ELSE
  898.             mworte1 = mworte1+' -'
  899.             mworte2 = SUBSTR(mworte,mcut1+1)
  900.             mworte3 = ' '
  901.          ENDIF
  902.       ELSE
  903.          mworte1 = mworte
  904.          mworte2 = ' '
  905.          mworte3 = ' '
  906.       ENDIF
  907.       @ 12, 16 SAY mworte1
  908.       @ 13, 16 SAY mworte2
  909.       @ 14, 16 SAY mworte3
  910.    CASE pbut = 4             && 4. Push-Button  (Abbrechen)
  911.       IF CONFIRM(canc_msg, msg_color, box_msg, 12)
  912.          mreturn = 1
  913.       ENDIF
  914.    ENDCASE
  915. ENDIF
  916. RETURN mreturn
  917.  
  918. *******************************************************************************
  919. *
  920. *        Function: POP205()
  921. *
  922. *           Calls: MIDDLE()       (function  in CLPFUNC1.PRG)
  923. *                : DATUM()        (function  in CLPFUNC1.PRG)
  924. *
  925. *******************************************************************************
  926. FUNCTION pop205
  927. PARAMETER maction, pbut
  928. PRIVATE mreturn              &&  1 = Zurück   2 = Weiter
  929. mreturn = 2
  930. IF maction = 'READ'
  931.    @  9, 13 SAY 'Datumsformat 0 : '+middle(datum(0),34)
  932.    @ 10, 13 SAY 'Datumsformat 1 : '+middle(datum(1),34)
  933.    @ 11, 13 SAY 'Datumsformat 2 : '+middle(datum(2),34)
  934.    @ 12, 13 SAY 'Datumsformat 3 : '+middle(datum(3),34)
  935.    @ 13, 13 SAY 'Datumsformat 4 : '+middle(datum(4),34)
  936.    @ 14, 13 SAY 'Datumsformat 5 : '+middle(datum(5),34)
  937.    @ 15, 13 SAY 'Datumsformat 6 : '+middle(datum(6),34)
  938.    INKEY(0)
  939. ELSEIF maction = 'PUSH'
  940.    mreturn = 1
  941. ENDIF
  942. RETURN mreturn
  943.  
  944. *******************************************************************************
  945. *
  946. *       Procedure: USERHELP
  947. *
  948. *       Called by: WIN_HELP       (procedure in CLPWINDW.PRG)
  949. *
  950. *******************************************************************************
  951. PROCEDURE USERHELP
  952. PARAMETER helpid
  953. DO CASE
  954. CASE helpid = 'CLPTEST'
  955.    helptitel = 'Allgemeine Hilfe'
  956.    helpline2 = anw_id+' Version '+anw_ver+' ...'
  957.    helpline3 = "... demonstriert den Gebrauch und die Möglichkeiten"
  958.    helpline4 = "    mit den Clipper-Funktionen (CLPxxxxx)          "
  959.    helpline6 = "Es gelten die allgemeinen Regeln des SAA-Standards:"
  960.    helpline7 = "   F1=Hilfe,  F3=Zurück,  F10=Menü,  ...           "
  961. CASE helpid = 'TASTEN'
  962.    helptitel = 'Hilfe für Tasten'
  963.    helpline1 = "F1=Hilfe,  F3=Programm beenden,  F10=Menü          "
  964.    helpline3 = "Esc=Abbrechen  Eingabetaste=Ausführen              "
  965.    helpline5 = "'' und '' = Balken nach unten/oben bewegen       "
  966.    helpline7 = "Tabulator = nächsten Push-Button aktivieren        "
  967. CASE helpid = 'ABOUT'
  968.    helptitel = anw_name
  969.    helpline2 = anw_id+' Version '+anw_ver+' ...'
  970.    helpline3 = "... wurde mit 'Clipper', Version Sommer '87 ent-   "
  971.    helpline4 = "     wickelt und mit 'PLINK86' gelinkt.            "
  972.    helpline6 = "'Clipper' ist ein Warenzeichen der Nantucket Corp. "
  973.    helpline7 = "'PLINK86' ist ein Warenzeichen der Phoenix Tech Ltd"
  974. CASE helpid = 'SHARE'
  975.    helptitel = anw_name
  976.    helpline1 = "Die Ihnen hier vorliegende Version von "+anw_id+" ist die"
  977.    helpline2 = "Shareware-Version des Programms."
  978.    helpline3 = "Wenn Sie sich beim Autor registrieren lassen, dann"
  979.    helpline4 = "bekommen Sie zunächst einmal die neueste Version"
  980.    helpline5 = "des Programms. Außerdem fallen selbstverständlich"
  981.    helpline6 = "sämtliche (störenden) Hinweise auf Shareware weg."
  982.    helpline8 = anw_cr
  983. ENDCASE
  984. RETURN
  985.  
  986. *: EOF: CLPTEST.PRG
  987.