home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / insidetp / 1990_02 / screen.pas < prev   
Pascal/Delphi Source File  |  1990-02-06  |  2KB  |  99 lines

  1. UNIT Screen;
  2.  
  3. {
  4.  A demonstration unit utilizing units from the
  5.   Technojock Toolkit
  6.  
  7.   Purpose:  Initialize a program's main screen,
  8.             including Main Menu, DateTime bar,
  9.             and Program Title.
  10.  
  11. }
  12.  
  13. INTERFACE
  14.  
  15.   USES
  16.     Crt,        { Borland Unit  }
  17.     MiscTTT5,   { Date and Time Functions }
  18.     FastTTT5,   { Screen Write routines }
  19.     MenuTTT5,   { Menuing routines }
  20.     KeyTTT5,    { Keyboard handler }
  21.     WinTTT5;    { Windowing unit }
  22.   VAR
  23.     MainMenu   : Menu_Record;
  24.     Choice,
  25.     Error       : Integer;
  26.  
  27.   PROCEDURE InitMenu;
  28.   PROCEDURE RunMenu;
  29.  
  30. IMPLEMENTATION
  31.  
  32. {$F+}
  33.   PROCEDURE ClockBar;
  34.     BEGIN
  35.       WriteAt(1,25,Black,LightGray,Date);
  36.       WriteAt(55,25,Black,LightGray,Time);
  37.     END;
  38. {$F-}
  39.  
  40.   PROCEDURE InitMenu;
  41.     BEGIN
  42.       SaveScreen( 1 );
  43.       FillScreen(1,2,80,24,LightGray,Blue,' ');
  44.       ClearLine(1,Red,LightGray);
  45.       WriteCenter(1,Red,LightGray,
  46.                   'TechnoJock Demo');
  47.       ClearLine(25,Black,LightGray);
  48.       Menu_Set( MainMenu );
  49.       With MainMenu do
  50.         begin
  51.           Heading1 := 'Main Menu';
  52.           Topic[1] := 'Load';
  53.           Topic[2] := 'Save';
  54.           Topic[3] := 'Print';
  55.           Topic[4] := 'Exit';
  56.           TotalPicks := 4;
  57.          end;
  58.     end;
  59.   Procedure LoadSomething;
  60.     begin
  61.       WriteAt(1,1,Black,LightGray,'Loading');
  62.       Sound(220); Delay(400); NoSound;
  63.       WriteAt(1,1,Black,LightGray,'       ');
  64.     end;
  65.  
  66.   Procedure SaveSomething;
  67.     begin
  68.       WriteAt(1,1,Black,LightGray,'Saving');
  69.       Sound(440); Delay(400); NoSound;
  70.       WriteAt(1,1,Black,LightGray,'      ');
  71.     end;
  72.  
  73.   Procedure PrintSomething;
  74.     begin
  75.       WriteAt(1,1,Black,LightGray,'Printing');
  76.       Sound(880); Delay(400); NoSound;
  77.       WriteAt(1,1,Black,LightGray,'        ');
  78.     end;
  79.  
  80.  
  81.   Procedure RunMenu;
  82.     begin
  83.       Choice := 1;
  84.       Repeat
  85.         DisplayMenu(MainMenu,False,Choice,Error);
  86.         Case Choice of
  87.           1 : LoadSomething;
  88.           2 : SaveSomething;
  89.           3 : PrintSomething;
  90.         end;
  91.       Until (Choice = 4) OR (Error = 1);
  92.       RestoreScreen( 1 );
  93.     end;
  94.  
  95.   Begin
  96.     Assign_Idle_Hook( ClockBar );
  97.     InitMenu;
  98.   End.
  99.