home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 January / Pcwk0198.iso / Dcomplib / ANIMATED.LZH / DEMOSRC.ZIP / ANIUNIT.PAS < prev   
Pascal/Delphi Source File  |  1995-04-14  |  3KB  |  134 lines

  1. unit Aniunit;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, Animate;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Bulb: TAnimated;
  12.     BulbButton: TButton;
  13.     Coins: TAnimated;
  14.     CoinButton: TButton;
  15.     Pencil: TAnimated;
  16.     TrafficLight: TAnimated;
  17.     TrafficLightButton: TButton;
  18.     Crumble: TAnimated;
  19.     CrumbleButton: TButton;
  20.     Explode: TAnimated;
  21.     ExplodeButton: TButton;
  22.     Bomb: TAnimated;
  23.     BombButton: TButton;
  24.     procedure BulbClick(Sender: TObject);
  25.     procedure CoinClick(Sender: TObject);
  26.     procedure TrafficLightClick(Sender: TObject);
  27.     procedure CrumbleClick(Sender: TObject);
  28.     procedure ExplodeClick(Sender: TObject);
  29.     procedure FormActivate(Sender: TObject);
  30.     procedure BombClick(Sender: TObject);
  31.     procedure BombChangeFrame(Sender: TObject);
  32.     procedure FormCreate(Sender: TObject);
  33.     procedure FormDestroy(Sender: TObject);
  34.   private
  35.     { Private declarations }
  36.     DLLHandle : THandle;
  37.     PlaySound : function (lpszSoundName: PChar; uFlags: Word): Bool;
  38.   public
  39.     { Public declarations }
  40.   end;
  41.  
  42. var
  43.   Form1: TForm1;
  44.  
  45. implementation
  46. {uses MMSystem;}
  47.  
  48. {$R *.DFM}
  49.  
  50. procedure TForm1.BulbClick(Sender: TObject);
  51. begin
  52. with Sender as TButton do
  53.   if Caption = 'Off' then
  54.     begin
  55.     Bulb.Frame := 1;
  56.     Caption := 'On';
  57.     end
  58.   else
  59.     begin
  60.     Bulb.Frame := 0;
  61.     Caption := 'Off';
  62.     end;
  63. end;
  64.  
  65. procedure TForm1.CoinClick(Sender: TObject);
  66. begin
  67. with Coins do
  68.   begin
  69.   Reverse := not Reverse;
  70.   Play := True;
  71.   end;
  72. end;
  73.  
  74. procedure TForm1.TrafficLightClick(Sender: TObject);
  75. begin
  76. with TrafficLight do
  77.   Frame := Frame + 1;  {Incrementing wraps around at FrameCount}
  78. end;
  79.  
  80. procedure TForm1.CrumbleClick(Sender: TObject);
  81. begin
  82. with Crumble do
  83.   begin
  84.   Reverse := not Reverse;
  85.   Play := True;
  86.   end;
  87. end;
  88.  
  89. procedure TForm1.ExplodeClick(Sender: TObject);
  90. begin
  91. with Explode do
  92.   begin
  93.   Reverse := not Reverse;
  94.   Play := True;
  95.   end;
  96. end;
  97.  
  98. procedure TForm1.FormActivate(Sender: TObject);
  99. begin
  100. Pencil.Play := True;
  101. end;
  102.  
  103. procedure TForm1.BombClick(Sender: TObject);
  104. begin
  105. with Bomb do
  106.   if Frame = 0 then
  107.     Play := True
  108.   else
  109.     Frame := 0;
  110. end;
  111.  
  112. procedure TForm1.BombChangeFrame(Sender: TObject);
  113. const
  114.   snd_Async           = $0001;  { play asynchronously }
  115. begin
  116. if (Bomb.Frame = 8) and (Assigned(PlaySound)) then
  117.     PlaySound('explode.wav', snd_ASync);
  118. end;
  119.  
  120. procedure TForm1.FormCreate(Sender: TObject);
  121. begin
  122. {make sure mmsystem.dll exists before calling sndPlaySound}
  123. DLLHandle := LoadLibrary('mmsystem.dll');
  124. if DLLHandle >= 32 then
  125.   @PlaySound := GetProcAddress(DLLHandle, 'sndPlaySound');
  126. end;
  127.  
  128. procedure TForm1.FormDestroy(Sender: TObject);
  129. begin
  130. if DLLHandle >= 32 then FreeLibrary(DLLHandle);
  131. end;
  132.  
  133. end.
  134.