home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
sonderh1
/
dfmenue.inc
< prev
next >
Wrap
Text File
|
1987-06-10
|
2KB
|
82 lines
(*---------------------------------------------------------------------------*)
(* DFMENUE.INC (Hauptmenue) *)
FUNCTION Menue(Menue_Text : String255; Sp,Zl : INTEGER) : INTEGER;
VAR
Wahl,
T_Anz, (* Anzahl Menuepunkte *)
Fehler : INTEGER;
T_Anf, (* Anfangs und Endpositionen *)
T_End : ARRAY[0..20] OF INTEGER; (* der Menuepunkte *)
Zeichen : CHAR;
NullFlag : BOOLEAN;
(* Lokale Prozedur von Menue *)
PROCEDURE Init_Menue;
VAR k : INTEGER;
BEGIN
Wahl := 1;
(* Vorne und hinten ein Blank anfuegen *)
Menue_Text := Concat(' ',Menue_Text);
Menue_Text := Concat(Menue_Text,' ');
FOR k := 2 TO Length(Menue_Text) DO BEGIN
IF Menue_Text[k] = ' ' THEN
IF Menue_Text[Pred(k)] <> ' ' THEN BEGIN
T_End[Wahl] := Pred(k);
Wahl := Succ(Wahl)
END;
IF Menue_Text[k] <> ' ' THEN (* *)
IF Menue_Text[Pred(k)] = ' ' THEN
T_Anf[Wahl] := Pred(k)
END;
(* Blanks wieder entfernen *)
Delete(Menue_Text,1,1);
Delete(Menue_Text,Length(Menue_Text),1);
T_Anz:= Pred(Wahl)
END;
(* auch lokal zu Menue *)
PROCEDURE Schreibe_Menue;
VAR i : INTEGER;
BEGIN
GotoXY(Sp,Zl);
FOR i := 1 TO Length(Menue_Text) DO BEGIN
IF i = T_Anf[Wahl] THEN Write(Inv_Ein);
IF i = T_End[Wahl] THEN Write(Inv_Aus);
Write(Menue_Text[i]);
END;
END;
(* Hier beginnt Function Menue *)
BEGIN
Init_Menue;
Wahl := 1;
Schreibe_Menue;
REPEAT
Zeichen := GetKey;
CASE Zeichen OF
CURSOR_LINKS : BEGIN
Wahl := Pred(Wahl);
IF Wahl < 1 THEN
Wahl := T_Anz;
Schreibe_Menue
END;
CURSOR_RECHTS : BEGIN
Wahl := Succ(Wahl);
IF Wahl > T_Anz THEN
Wahl := 1;
Schreibe_Menue
END
END
UNTIL Zeichen = RETURN;
Menue := Wahl
END;
(* Ende DFMENUE.INC *)
(*---------------------------------------------------------------------------*)