home *** CD-ROM | disk | FTP | other *** search
- PROGRAM MenuDemo;
- Demonstration der Menu- und Maskenfunktionen }
- (c) 1990 Prospero Software }
- {$I PASPC}
-
- AR f : TEXT; Ch : Char; Sc : Byte; Title, Object : Byte;
- AString : String [20]; AForm : FormPtr;
- AByte : Byte; Exit : Boolean;
-
- ROCEDURE Process (Title,Object:Byte);
- VAR f : Text; Hours,Minutes,Seconds,Hundreths : Integer;
- Ch : Char; Scan : Byte;
- BEGIN
- CursorOff;
- CASE Title OF
- 1 : CASE Object OF { Information ... }
- 1 : BEGIN { ... Über MenuDemo }
- StartMessage (10,10,59,14); Paper (Red);
- Ink (Yellow); TextFrame (TRUE); ClrScr;
- PutString ('MenuDemo wurde mit Prospero '+
- 'Pascal entwickelt.',2,2);
- GetKeyboard (Ch,Scan); EndMessage;
- END;
- 2 : BEGIN { ... Über Uhrzeit }
- ScreenFile (f);
- StartMessage (20,10,44,14); Paper (Blue);
- Ink (LightGrey); TextFrame (FALSE); ClrScr;
- REPEAT
- Time (Hours,Minutes,Seconds,Hundreths);
- GotoXY(2,2);
- Write (f,'Es ist jetzt ',Hours:2,':',
- Minutes:2,'.',Seconds:2);
- UNTIL KeyPressed;
- GetKeyboard (Ch,Scan); EndMessage;
- END;
- END;
- 2 : CASE Object OF { Optionen }
- 1 : IF FormDo (AForm) THEN BEGIN
- ScreenFile (f); Writeln (f);
- Write (f,' Mein Name ist ',AString,'. ');
- IF AByte=1 THEN Write (f,'Ich bin ein Mann.');
- IF AByte=2 THEN Write(f,'Ich bin eine Frau.');
- Writeln(f);
- END;
- { 2 : Sollte nicht vorkommen, da nicht wählbar }
- 3 : BEGIN { Beenden des Programms }
- StartMessage (20,20,29,22); Paper (LightGrey);
- Ink (Black); ClrScr; PutString ('ENDE',4,2);
- Beep; EndMessage;
- END;
- END;
- END;
- CursorOn;
- END;
-
- BEGIN
- InitScreen; { Standardwerte für ... }
- MenuCreate ('$P3$I0$U1$V3'+ { Vorder/Hintergrundfarbe }
- '$M3$N0$Y3$Z0$S0$T3 '+ { Pull-down }
- '$W20$HI$ $I4I$I0nformation '+ { Menu- }
- '$W20$HO$ $I4O$I0ptionen '); { balken }
- MenuAdd (1,'$HM Über MenuDemo M ');
- MenuAdd (1,'$HZ Über die Uhrzeit Z ');
- MenuAdd (2,'$KF$HF Einfache Maske $AF ');
- MenuAdd (2,'$D--------------------');
- MenuAdd (2,'$KE$HE Ende $AE ');
- FormCreate (AForm,16,7,49,7,0,7);
- FormString (AForm,'$X2$Y2 Name :-');
- FormEdit (AForm,11,2,20,FormASCII,AString);
- FormCycle (AForm,AByte,2,5,' Geschlecht :- ' +
- '$X18$ MÄNNLICH $ WEIBLICH ');
- MenuDisplay; TextWindow (2,3,79,24); TextFrame (TRUE);
- ScreenFile (f); Exit := FALSE;
- WHILE Not (Exit) DO
- BEGIN
- GetKeyboard(Ch,Sc);
- IF (Ch = Chr(0)) AND_THEN MenuDo (Sc,Title,Object) THEN
- BEGIN
- Process (Title,Object);
- IF (Title = 2) AND (Object = 3) THEN Exit := TRUE;
- MenuSelect (Title,TRUE); { Markierung AUS }
- END
- ELSE IF Ch IN [Chr(32)..Chr(127)] THEN Write (f,Ch)
- ELSE IF Ch = Chr(13) THEN Writeln (f);
- END;
- END.