home *** CD-ROM | disk | FTP | other *** search
- /*******************************************
- * Name: TEST1
- * Art: PROGRAMM
- * Autor: FRANK PACHER
- * Datum: 15.MAI 1991
- * Dateien: %
- * Programme: SAAMENU()
- * Compiling: /m /b
- * Aufruf:
- * Glob.Var.:
- * Besonderheiten: NUR ZUR DEMONSTRATION DER
- * ANWENDUNG VON
- * <SAAMENU>
- * UND DER DEMONSTRATION DER
- * VARIABLEN-DEKLARATION FÜR
- * <SAAMENU>
- *
- * (c) by F.PACHER
- ******************************************************************/
- /************ INCLUDEs Dürfen Nicht Fehlen !! *****************************/
- #include 'inkey.ch'
- #include 'achoice.ch'
- #include 'box.ch'
- /**************************************************************************/
- SetColor('gr+/b,w+/n')
- @ 0,0 clear to 24,79
- @ 2,0 to 23,79 double
- /************** Declaration der MenuÜbergaben ****************/
- public grundangaben := Array(1,15)
- grundangaben[1,1]:='Grundmenu' // MenuName anzeigen
- grundangaben[1,2]:=23 // Zeile f. MenunamenAnzeige
- grundangaben[1,3]:='╡╞' // Begrenzer f. -"-
- grundangaben[1,4]:='rg+/b' // Farbe d. Begrenzer
- grundangaben[1,5]:='g/n' // Farbe d. MenuNamen
- grundangaben[1,6]:=24 // Zeile f. Message
- grundangaben[1,7]:=70 // max.Laenge d. Message (max.70 Zeich.)
- grundangaben[1,8]:='rg+/b' // Farbe d. Message
- grundangaben[1,9]:=.T. // Unterbalken anzeigen
- grundangaben[1,10]:='gr+/n,r+/w,n,b+/n,w/n' // Farbe Menu (border=HotKey)
- grundangaben[1,11]:='gr+/n' // Farbe Unterbalken
- grundangaben[1,12]:=.T. // ESC-Abbruch erlaubt
- grundangaben[1,14]:=0 // Zeile f. MenuAnzeige
- grundangaben[1,15]:='<ESC> Zurück' //Anzeige ständiges Hotkey
- //(default bei NIL ='F1 Hilfe')
- /************** Declaration der UnterMenuPunkte ***************/
-
- /************** Declaration des UnterMenuPunktes lesensuch *********/
- lesensuch := Array(4,12)
- lesensuch[2,1] := grundangaben[1,14]+5 // oben
- lesensuch[2,2] := 42 // links
- lesensuch[2,3] := grundangaben[1,14]+12 // unten
- lesensuch[2,4] := 57 // rechts
- lesensuch[2,5] := Array(4) // Array mit UnterMenuPunkten
- lesensuch[2,5,1] := 'suchen 1' // UntermenuPunkte
- lesensuch[2,5,2] := 'wahlsuch 2' // ....
- lesensuch[2,5,3] := 'die wahlsuche 3 ' // ....
- lesensuch[2,5,4] := 'noch suchen 4' // ....
- lesensuch[2,6] := Array(4) // Array mit Message
- lesensuch[2,6,1] := 'Message1' // Message
- lesensuch[2,6,2] := 'Message2' // .....
- lesensuch[2,6,3] := 'Message3' // .....
- lesensuch[2,6,4] := 'Message4' // .....
- lesensuch[2,7] := Array(4) // Array mit der Verfuegbarkeit
- lesensuch[2,7,1] := .F. // Verfuegbarkeit
- lesensuch[2,7,2] := .F. // ......
- lesensuch[2,7,3] := .F. // ......
- lesensuch[2,7,4] := .F.
- lesensuch[2,8] := &('{||testudf()}') // evtl. UDF() bei jeder Taste
- // muß als CODEBLOCK-Makro
- // definiert sein !!!!
- // ODER NIL alles andere geht
- // schief
- lesensuch[2,9] := 1 // Vorauswahl
- lesensuch[2,10] := 0 // Positionierung im Fenster
- lesensuch[2,11] := 'g/n,w+/r,n,,w/n+' // Farbe fuer UnterMenu
- lesensuch[2,12] := NIL // Array mit weitern Untermenus
-
- /************** Declaration des UnterMenuPunktes suchen ***********/
- such := Array(8,12)
- such[7,1] := grundangaben[1,14]+3 // oben
- such[7,2] := 32 // links
- such[7,3] := grundangaben[1,14]+11 // unten
- such[7,4] := 50 // rechts
- such[7,5] := Array(4) // Array mit UnterMenuPunkten
- such[7,5,1] := 'Suchen 1' // UntermenuPunkte
- such[7,5,2] := 'Wahl für Suchen 2'+chr(16) // ....
- such[7,5,3] := 'Nummer 3 suchen' // ....
- such[7,5,4] := 'Die 4 von Suchen' // ....
- such[7,6] := Array(4) // Array mit Message
- such[7,6,1] := 'Message1' // Message
- such[7,6,2] := 'Message2' // .....
- such[7,6,3] := 'Message3' // .....
- such[7,6,4] := 'Message4' // .....
- such[7,7] := Array(4) // Array mit der Verfuegbarkeit
- such[7,7,1] := .T. // Verfuegbarkeit
- such[7,7,2] := .T. // ......
- such[7,7,3] := .T. // ......
- such[7,7,4] := .T.
- such[7,8] := NIL // evtl. UDF() bei jeder Taste
- such[7,9] := 1 // Vorauswahl
- such[7,10] := 0 // Positionierung im Fenster
- such[7,11] := 'w+/n,w+/r,n,,w/n' // Farbe fuer UnterMenu
- such[7,12] := lesensuch // Array mit weitern Untermenus
-
- such[5,1] := grundangaben[1,14]+3 // oben
- such[5,2] := 32 // links
- such[5,3] := grundangaben[1,14]+11 // unten
- such[5,4] := 50 // rechts
- such[5,5] := Array(4) // Array mit UnterMenuPunkten
- such[5,5,1] := 'Suchen 1' // UntermenuPunkte
- such[5,5,2] := 'Wahl für Suchen 2' + chr(16) // ....
- such[5,5,3] := 'Nummer 3 suchen' // ....
- such[5,5,4] := 'Die 4 von Suchen' // ....
- such[5,6] := Array(4) // Array mit Message
- such[5,6,1] := 'Message1' // Message
- such[5,6,2] := 'Message2' // .....
- such[5,6,3] := 'Message3' // .....
- such[5,6,4] := 'Message4' // .....
- such[5,7] := Array(4) // Array mit der Verfuegbarkeit
- such[5,7,1] := .T. // Verfuegbarkeit
- such[5,7,2] := .T. // ......
- such[5,7,3] := .T. // ......
- such[5,7,4] := .T.
- such[5,8] := NIL // evtl. UDF() bei jeder Taste
- such[5,9] := 1 // Vorauswahl
- such[5,10] := 0 // Positionierung im Fenster
- such[5,11] := 'w+/n,w+/r,n,,w/n' // Farbe fuer UnterMenu
- such[5,12] := lesensuch // Array mit weitern Untermenus
-
- /************** Declaration des UnterMenuPunktes Lesen *************/
- lesen :=Array(12) // Array mit Untermenu
- lesen[1] := grundangaben[1,14]+2 // oben
- lesen[2] := 20 // links
- lesen[3] := grundangaben[1,14]+5 // unten
- lesen[4] := 35 // rechts
- lesen[5] := Array(8) // Array mit UnterMenuPunkten
- lesen[5,1] := 'Nur1 Suchen ' // UntermenuPunkte
- lesen[5,2] := 'Lesen2 only' // ....
- lesen[5,3] := 'Lesen3 only' // ....
- lesen[5,4] := 'Lesen4 only' // ....
- lesen[5,5] := 'Lesen5 only' + chr(16) // ....
- lesen[5,6] := 'Lesen6 only' // ....
- lesen[5,7] := 'Lesen7 only' // ....
- lesen[5,8] := 'Lesen8 only' // ....
- lesen[6] := Array(8) // Array mit Message
- lesen[6,1] := 'Message1' // Message
- lesen[6,2] := 'Message2' // .....
- lesen[6,3] := 'Message3' // .....
- lesen[6,4] := 'Message4' // .....
- lesen[6,5] := 'Message5' // .....
- lesen[6,6] := 'Message6' // .....
- lesen[6,7] := 'Message7' // .....
- lesen[6,8] := 'Message8' // .....
- lesen[7] := Array(8) // Array mit der Verfuegbarkeit
- lesen[7,1] := .T. // Verfuegbarkeit
- lesen[7,2] := .T. // ......
- lesen[7,3] := .T. // ......
- lesen[7,4] := .T. // ......
- lesen[7,5] := .T. // ......
- lesen[7,6] := .T. // ......
- lesen[7,7] := .T. // ......
- lesen[7,8] := .T. // ......
- lesen[8] := &('{||testudf()}') // evtl. UDF() bei jeder Taste
- lesen[9] := 1 // Vorauswahl
- lesen[10] := 0 // Positionierung im Fenster
- lesen[11] := 'g/n,w+/r,n,,w/n+' // Farbe fuer UnterMenu
- lesen[12] := such // Array mit weitern Untermenus
-
-
- /************** Declaration des UnterMenuPunktes Datei *************/
-
- datei :=Array(12) // Array mit Untermenu
- datei[1] := grundangaben[1,14]+2 // oben
- datei[2] := 4 // links
- datei[3] := grundangaben[1,14]+5 // unten
- datei[4] := 24 // rechts
- datei[5] := Array(2) // Array mit UnterMenuPunkten
- datei[5,1] := 'Datei öffnen' // UntermenuPunkte
- datei[5,2] := 'Schließe Datei' // ....
- datei[6] := Array(2) // Array mit Message
- datei[6,1] := 'Message1' // Message
- datei[6,2] := 'Message2' // .....
- datei[7] := Array(2) // Array mit der Verfuegbarkeit
- datei[7,1] := .T. // Verfuegbarkeit
- datei[7,2] := .T. // ......
- datei[8] := NIL // evtl. UDF() bei jeder Taste
- datei[9] := 1 // Vorauswahl
- datei[10] := 0 // Positionierung im Fenster
- datei[11] := 'g/n,w+/r,n,,w/n+' // Farbe fuer UnterMenu
- datei[12] := NIL // Array mit weitern Untermenus
-
- /************** Declaration des UnterMenuPunktes Sonstiges *************/
-
- sons :=Array(12) // Array mit Untermenu
- sons[1] := grundangaben[1,14]+2 // oben
- sons[2] := 28 // links
- sons[3] := grundangaben[1,14]+5 // unten
- sons[4] := 44 // rechts
- sons[5] := Array(2) // Array mit UnterMenuPunkten
- sons[5,1] := 'Sonstiges 1' // UntermenuPunkte
- sons[5,2] := 'Wieder S. 2' // ....
- sons[6] := Array(2) // Array mit Message
- sons[6,1] := 'Message1' // Message
- sons[6,2] := 'Message2' // .....
- sons[7] := Array(2) // Array mit der Verfuegbarkeit
- sons[7,1] := .T. // Verfuegbarkeit
- sons[7,2] := .T. // ......
- sons[8] := NIL // evtl. UDF() bei jeder Taste
- sons[9] := 1 // Vorauswahl
- sons[10] := 0 // Positionierung im Fenster
- sons[11] := 'g/n,w+/r,n,,w/n+' // Farbe fuer UnterMenu
- sons[12] := NIL // Array mit weitern Untermenus
-
- /************** Declaration der HauptMenuPunkte *************/
- hauptmenu :=Array(4,4) // Array mit MenuPunkten
- hauptmenu[1,1]:='~D~atei' // Name MenuPunkt (~Hotkey~)
- hauptmenu[1,2]:='H1-Message' // Message
- hauptmenu[1,3]:=.T. // Aktiv oder gesperrt
- hauptmenu[1,4]:=datei // Array mit Untermenu
-
- hauptmenu[2,1]:='~E~ditieren' // wie vor {....
- hauptmenu[2,2]:='HP2-Message ist sehr gut !!' // ....
- hauptmenu[2,3]:=.F.
- hauptmenu[2,4]:=NIL
-
- hauptmenu[3,1]:='~L~esen'
- hauptmenu[3,2]:='MP3-Message'
- hauptmenu[3,3]:=.T.
- hauptmenu[3,4]:=lesen
-
- hauptmenu[4,1]:='~S~onstiges'
- hauptmenu[4,2]:='MP4-Message'
- hauptmenu[4,3]:=.T.
- hauptmenu[4,4]:=sons
-
-
- /************** Ergaenzungen zur Declaration der MenuÜbergaben ****************/
-
- grundangaben[1,13]:=hauptmenu // Array mit MenuPunkten
-
- /************************* Menu Aufruf ****************/
- la :=1
-
- ruck:=saamenu(,@grundangaben)
-
- @ 0,0 clear to 24,79
- for la :=1 to (len(ruck))
- if la =1
- @ 1,10 say 'Es wurde folgende Wahl getroffen :'
- @ 5,0
- ?? 'HAUPTMENU-PUNKT :'
- ? ruck[1]
- inkey(0)
- else
- ?
- ?? 'dessen Unter-PUNKT :'
- ? ruck[la]
- inkey(0)
- endif
- next
- /************************ END of PROGRAMM ****************************/
- /*******************************************
- * Name: TEST-UDF()
- * Art: FUNCTION
- * Autor: FRANK PACHER
- * Datum: 4.MAI 1991
- * Dateien: %
- * Programme: SAAMENU()
- * Compiling: %
- * Aufruf: testudf()
- * Glob.Var.:
- * Besonderheiten: NUR ZUR DEMONSTRATION FÜR
- * UDF() EINBINDUNG IN
- * <SAAMENU>
- *
- * (c) by F.PACHER
- ******************************************************************/
- function testudf
- @ 5,5 say AModus
- @ 7,5 say APosZeiger
- @ 9,5 say APosRel
- @ 11,5 say 'TASTE -->'
- inkey(0)
- @ 5,5 clear to 12,20
- /************************************************************************
- * ES IST ZUM BSP. FOLGENDES MÖGLICH :
- *
- * if APosZeiger<>5
- * zurueckgebe:= 2 // möglich ist : NIL, 0, 1 oder 2
- * else
- * zurueckgebe:= 1
- * endif
- * if lastkey() = 27
- * zurueckgebe := 0
- * endif
- ***************************************************************************
- ODER :
- ****************************************************************************/
-
- zurueckgebe := NIL
-
- return zurueckgebe // Hier ist die Rückgabe wie bei Functionen ACHOICE() !
- // AUßER der RÜCKGABE 3 !!!! NUR NIL, 0 bis 2 MÖGLICH !!
- // NIL normal weiter im Text wie gehabt (zB. gehe zum
- // nächsten Menupunkt, dessen Anfangsbuchstabe der
- // gedrückten Taste entspricht )
- // 0 Auswahl abbrechen
- // 1 -"- beenden gewählten Punkt zurückgeben
- // 2 -"- fortsetzenn (zB. mit Cursortasten)
- /*********************** Ende of Function ************************/
- /************************ END of FILE ****************************/