home *** CD-ROM | disk | FTP | other *** search
/ TopWare 18: Liquid / Image.iso / liquid / top1143 / gepackt.exe / BSPQTSW.EXE / KLAVIER.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-06-28  |  2.5 KB  |  121 lines

  1. (***************************************
  2. * WG-VISION 1.0   BEISPIELPROGRAMM     *
  3. ****************************************
  4. *                                      *
  5. * "Klavier-Simulator"                  *
  6. *                                      *
  7. ****************************************
  8. * (c) 1993 Dipl.Phys. Mathias Scholz   *
  9. ***************************************)
  10.  
  11. {$I COMPILER.INC}
  12.  
  13. program Klavier;
  14.  
  15. uses WApp,
  16.      WEvent,
  17.      WDecl,
  18.      WViews,
  19.      WDlg,
  20.      WUtils,
  21.      Crt;
  22.  
  23.  
  24. const cmKlavier=101;
  25.  
  26. type TApplication=object(TApp)
  27.        procedure InitMenuBar; virtual;
  28.        procedure HandleEvent; virtual;
  29.        procedure PlayWindow;
  30.      end;
  31.  
  32.      PPiano=^TPiano;
  33.      TPiano=object(TDlgWindow)
  34.        constructor Init(X,Y:integer);
  35.        procedure HandleEvent; virtual;
  36.      end;
  37.  
  38. var MyApp:TApplication;
  39.  
  40.  
  41. {Implementation TApplication}
  42.  
  43. procedure TApplication.InitMenuBar;
  44. begin
  45.   MainMenu('~F~enster',0);
  46.    SubMenu('~K~lavier',cmKlavier,0,0,false,false);
  47.    SubMenu('E~x~it  Alt-X',cmCloseApplication,0,altX,false,false);
  48. end;
  49.  
  50. procedure TApplication.HandleEvent;
  51. begin
  52.   Heap^.ShowHeapStatus(523,8,White);
  53.   TProgram.HandleEvent;
  54.   case Event.Command of
  55.    cmKlavier : PlayWindow;
  56.   end; {case}
  57. end;
  58.  
  59. procedure TApplication.PlayWindow;
  60. var Window:PPiano;
  61. begin
  62.   Window:=New(PPiano, Init(60,80));
  63.   InsertDesktop(Window);
  64. end;
  65.  
  66. {Implementation TPiano}
  67.  
  68. constructor TPiano.Init(X,Y:integer);
  69. var RR:TRect;
  70. begin
  71.   RR.Assign(X,Y,X+184,Y+102);
  72.   TDlgWindow.Init(RR,'Klavier',winDouble+winPanel+winMenu);
  73.   SetPushButton(6,26,22,70,'C',90);
  74.    ChangePalColor(8,LightGray);
  75.   SetPushButton(31,26,22,70,'D',91);
  76.    ChangePalColor(8,LightGray);
  77.   SetPushButton(56,26,22,70,'E',92);
  78.    ChangePalColor(8,LightGray);
  79.   SetPushButton(81,26,22,70,'F',93);
  80.    ChangePalColor(8,LightGray);
  81.   SetPushButton(106,26,22,70,'G',94);
  82.    ChangePalColor(8,LightGray);
  83.   SetPushButton(131,26,22,70,'A',95);
  84.    ChangePalColor(8,LightGray);
  85.   SetPushButton(156,26,22,70,'H',96);
  86.    ChangePalColor(8,LightGray);
  87. end;
  88.  
  89. procedure TPiano.HandleEvent;
  90.  
  91. procedure Piep(Frequenz:integer);
  92. begin
  93.   Sound(Frequenz);
  94.   Delay(100);
  95.   NoSound;
  96. end;
  97.  
  98. {------}
  99.  
  100. begin
  101.   TDlgWindow.HandleEvent;
  102.   case Event.Command of
  103.    90 : Piep(262);
  104.    91 : Piep(294);
  105.    92 : Piep(330);
  106.    93 : Piep(349);
  107.    94 : Piep(392);
  108.    95 : Piep(440);
  109.    96 : Piep(494);
  110.   end; {case}
  111. end;
  112.  
  113. {Hauptprogramm}
  114.  
  115. begin
  116.   MyApp.Init('Klavier-Simulation');
  117.   MyApp.Run;
  118.   MyApp.Done;
  119. end.
  120.  
  121.