home *** CD-ROM | disk | FTP | other *** search
- (* --> 108 Zeilen *)
- (* ------------------------------------------------------ *)
- (* WINDEMO.PAS *)
- (* Demonstrationsprogramm zur Unit WINDOW.PAS *)
- (* (c) 1988 by Christian Steingräber und TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM windemo;
-
- USES Crt, Window;
-
- CONST
- gut_antwort: ARRAY [1..7] OF INTEGER =
- (1, -27, -120, -121, -122, -35, -18);
-
- VAR
- i, j, tiefe, m_pos, x, y: BYTE;
- auswahl : INTEGER;
- status, not_done : BOOLEAN;
-
- FUNCTION ok(wert: INTEGER): BOOLEAN;
- BEGIN
- ok := FALSE;
- FOR i := 1 TO 7 DO
- IF wert = gut_antwort[i] THEN ok := TRUE;
- END;
-
- PROCEDURE pseudo(x, y: BYTE; VAR auswahl: INTEGER);
- VAR
- m_pos : BYTE;
- status: BOOLEAN;
- BEGIN
- tiefe := tiefe + 1;
- m_pos := 2;
- status:= not_opened;
- REPEAT
- IF tiefe = 5 THEN
- auswahl:= flipmenue(x, y, '#Zurück_)ESC_',
- ver, status, m_pos)
- ELSE
- auswahl:= flipmenue(x,y,'#Zurück_Weiter#1_Weiter#2_'+
- 'Weiter#3_)ESC_',ver, status, m_pos);
- IF auswahl in[2, 3, 4] THEN BEGIN
- IF x < 61 THEN x := x + 9 ELSE x := 70;
- IF y+auswahl < 20 THEN y := y + auswahl ELSE y := 20;
- pseudo(x, y, auswahl);
- IF (auswahl=1) OR (auswahl = -27) THEN auswahl := 0;
- END;
- UNTIL ok(auswahl);
- IF (auswahl = 1) OR (auswahl = -27) THEN auswahl := 0;
- rmwindow;
- tiefe := tiefe - 1;
- END;
-
- PROCEDURE hilfe;
- VAR ch: CHAR;
- BEGIN
- mkmidwindow(43,11,1,15,0,0);
- SetHeader(' Hilfsfenster ');
- WriteLn;
- TextColor(7);
- Write(' Wenn Sie den Menüpunkt ');
- TextColor(15);
- Write('E');
- TextColor(7);
- WriteLn('nde wählen,');
- WriteLn(' können Sie die Demo verlassen.');
- WriteLn;
- WriteLn(' Wenn Scroll-Lock aktiv ist, erreichen');
- Write(' Sie über ');
- TextColor(15);
- Write('F1');
- TextColor(7);
- WriteLn(' die Menü-Hilfe.');
- WriteLn;
- WriteLn(' Die Punkte des Hauptmenüs erreichen Sie');
- WriteLn(' jederzeit durch drücken der ALT-Taste und');
- WriteLn(' des entsprechenden hellen Buchstabens.');
- SetFoot(' Weiter mit ESC...');
- REPEAT ch := ReadKey; UNTIL ch = #27;
- rmwindow;
- auswahl := 0;
- END;
-
- BEGIN
- tiefe := 0; m_pos:= 1;
- status:= not_opened;
- x:= 0; y:= 1;
- REPEAT
- auswahl := flipmenue(x, y,
- 'BaumNr.:#1_BaumNr.:#2_BaumNr.:#3_'+
- '#Hilfe_#Ende_( Hauptmenü _', hor,
- status, m_pos);
- IF y < 17 THEN y := y + 3 ELSE y := 20;
- REPEAT
- not_done := FALSE;
- CASE auswahl OF
- 1, -120: pseudo(x + 1, y, auswahl);
- 2, -121: pseudo(x + 12, y, auswahl);
- 3, -122: pseudo(x + 23, y, auswahl);
- 4, -35: hilfe;
- ELSE not_done:= TRUE;
- END;
- UNTIL not_done;
- UNTIL (auswahl = 5) OR (auswahl = -18);
- rmwindow; { Flippmenue }
- END.
-
- (* ------------------------------------------------------ *)
- (* Ende von WINDEMO.PAS *)