home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------------------------- *)
- (* PDDEMO.PAS *)
-
- PROGRAM PullDown_Demo;
-
- CONST (*$I PDCONST.PAS *)
-
- TYPE (*$I PDTYPE.PAS *)
-
- VAR k,
- Result,
- MainResult :INTEGER;
- Key,
- MainKey :CHAR;
- Extern :InputStr;
- (*$I PDVAR.PAS *)
-
- (*$I PULLDOWN.PAS *)
-
- (* ----------------- die zentrale Steuerungsroutine -------------------- *)
- PROCEDURE RepeatPulldown ( xpos,ypos :INTEGER;
- VAR Menu :MenuType;
- VAR Result :INTEGER;
- VAR Key :CHAR;
- VAR Extern :InputStr);
- VAR first :BOOLEAN;
- BEGIN
- first := TRUE;
- REPEAT
- Pulldown (xpos,ypos,Menu,first,Result,Key,Extern);
- CASE MainResult OF
- 1: CASE Result OF
- 1: { Work File }; 2: { Main File }; 3: { SaveQuit };
- 4: { SaveCont }; 5: { QuitNoSave };
- END;
- 2: CASE Result OF
- 1: { Edit }; 2: { Compile }; 3: { Link }; 4: { Run };
- END;
- 3: CASE Result OF
- 1: { Directory }; 2: { Logged Drive }; 3: { Set Paths };
- END;
- 4: CASE Result OF
- 1: { Execute }; 2: { Calculator }; 3: { Clock };
- 4: { ASCII Table }; 5: { Help };
- END;
- 5: CASE Result OF
- 1: BEGIN ClrScr; Halt; END; (* ExitToDos... *)
- 2: { Continue };
- END;
- 6: CASE Result OF
- 1: { Sound }; 2: { WindowSize };
- 3: { AutoSave }; 4: { Linker };
- END;
- END;
- first := FALSE
- UNTIL Key <> CR
- END;
-
- BEGIN
- ClrScr; GotoXY (1,1); (* Hauptmenue-Balken anzeigen *)
- WITH Menu[1] DO
- BEGIN
- SetColors (NormalText,NormalBack);
- FOR k := 1 TO NoItems DO Write (Item[k]);
- END;
- SetColors (black,white); GotoXY (1,2); (* Schreibtisch herstellen *)
- FOR k := 1 TO 1840 DO Write (#178);
- SetColors (white,black); GotoXY (1,25);
- Write ('<RETURN> = activate pulldown menu ':47,
- '<ESC> = leave pulldown menu');
- REPEAT
- GotoXY (80,25);
- REPEAT
- REPEAT UNTIL KeyPressed;
- Read (Kbd,Key);
- UNTIL Key = CR;
- Extern := '';
- REPEAT
- Pulldown (xpos[1],ypos[1],Menu[1],FALSE,MainResult,MainKey,Extern);
- IF MainResult <> 0 THEN
- BEGIN
- k := Succ (MainResult);
- RepeatPulldown (xpos[k],ypos[k],Menu[k],Result,Key,Extern);
- IF Key IN [CrsLeft,CrsRight] THEN Extern := Key + CR
- END
- UNTIL MainResult = 0;
- UNTIL FALSE (* Abbruch nur ueber "ExitToDOS" *)
- END.
-