发信人: teleme(PassWord) 
整理人: teleme(2001-07-29 19:39:06), 站内信件
 | 
 
 
//****************Tetro2是一个about窗体
 //***************Tetro1.pas
 unit Tetris1;
 
 interface
 
 uses
   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
   Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls;
 
 const
   GlassWidth=10;
   GlassHeight=23;
 
 var
   GlassWorkSheet:    array [1..GlassHeight,1..GlassWidth] of Byte;
   OldGlassWorkSheet: array [1..GlassHeight,1..GlassWidth] of Byte;
 
 type
   TFigureWorksheet=array [1..4,1..4] of Byte;
 
 const
   Triada: TFigureWorksheet=
     ((0,1,0,0),
      (1,1,1,0),
      (0,0,0,0),
      (0,0,0,0));
   LCorner: TFigureWorksheet=
     ((1,1,1,0),
      (1,0,0,0),
      (0,0,0,0),
      (0,0,0,0));
   RCorner: TFigureWorksheet=
     ((1,1,1,0),
      (0,0,1,0),
      (0,0,0,0),
      (0,0,0,0));
   LZigzag: TFigureWorksheet=
     ((1,1,0,0),
      (0,1,1,0),
      (0,0,0,0),
      (0,0,0,0));
   RZigzag: TFigureWorksheet=
     ((0,1,1,0),
      (1,1,0,0),
      (0,0,0,0),
      (0,0,0,0));
   Stick: TFigureWorksheet=
     ((1,1,1,1),
      (0,0,0,0),
      (0,0,0,0),
      (0,0,0,0));
   Box: TFigureWorksheet=
     ((1,1,0,0),
      (1,1,0,0),
      (0,0,0,0),
      (0,0,0,0));
 
 const
   FigureWorkSheet: TFigureWorksheet=
     ((0,0,0,0),
      (0,0,0,0),
      (0,0,0,0),
      (0,0,0,0));
 
 const
   BarWidth= 14;
   BarHeight=14;
 
   NextBarWidth= 9;
   NextBarHeight=9;
 
 const
   TopOfs=    6;
   LeftOfs=   5;
   FieldWidth=4;
 
 const
   MaxFigureNumber=7;
   MaxCornerNumber=4;
   MaxFigureSize=  4;
   MaxFigureColor= 7;
 
 type
   TMoveDirect=  (mdDown,mdLeft,mdRight);
   TFigureCorner=(fc00,fc90,fc180,fc270);
 
 type
   TTetro1 = class(TForm)
     Label1: TLabel;
     Label2: TLabel;
     Label3: TLabel;
     Label4: TLabel;
     Timer1: TTimer;
     Bevel3: TBevel;
     SpeedButton1: TSpeedButton;
     SpeedButton2: TSpeedButton;
     SpeedButton3: TSpeedButton;
     SpeedButton4: TSpeedButton;
     SpeedButton5: TSpeedButton;
     SpeedButton6: TSpeedButton;
     SpeedButton7: TSpeedButton;
     SpeedButton8: TSpeedButton;
     Bevel1: TBevel;
     Bevel2: TBevel;
     Bevel4: TBevel;
     SpeedButton9: TSpeedButton;
     procedure FormPaint(Sender: TObject);
     procedure Timer1Timer(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure FormKeyDown(Sender: TObject; var Key: Word;
       Shift: TShiftState);
     procedure SpeedButton8Click(Sender: TObject);
     procedure SpeedButton5Click(Sender: TObject);
     procedure SpeedButton6Click(Sender: TObject);
     procedure SpeedButton7Click(Sender: TObject);
     procedure SpeedButton2Click(Sender: TObject);
     procedure SpeedButton1Click(Sender: TObject);
     procedure SpeedButton3Click(Sender: TObject);
     procedure SpeedButton4Click(Sender: TObject);
     procedure SpeedButton9Click(Sender: TObject);
   private
   public
     Level:        Byte;
     Score:        Longint;
     ReentTimer:   Boolean;
     ReentKeys:    Boolean;
 
     FigureActive: Boolean;
     FigureType:   Byte;
     FigureX:      Byte;
     FigureY:      Byte;
     FigureCorner: TFigureCorner;
     FigureMove:   TMoveDirect;
 
     FirstColor:   Byte;
     SecondColor:  Byte;
     FirstFigure:  Byte;
     SecondFigure: Byte;
 
     NextTopOfs:   Integer;
     NextLeftOfs:  Integer;
 
     RedrawSheet:  Boolean;
 
     function  FigureXSize: Byte;
     function  FigureYSize: Byte;
     procedure GenerateNewFigure;
     procedure ClearFigureIntoGlass;
     function  PutFigureIntoGlass(MoveDirect: TMoveDirect): Boolean;
     procedure RotateFigure;
     procedure ScanFillLines;
     procedure SetFigureColor;
   end;
 
 var
   Tetro1: TTetro1;
 
 implementation
 
 uses Tetris2;
 
 {$R *.DFM}
 
 procedure TTetro1.FormPaint(Sender: TObject);
 var
   X1,Y1,X2,Y2: Integer;
   NewRect:     TRect;
   I,J:         Byte;
   CurSheet:    TFigureWorksheet;
   NextColor:   TColor;
 begin
   if RedrawSheet then FillChar(OldGlassWorkSheet,SizeOf(OldGlassWorkSheet),#255);
   for I := 1 to GlassHeight do
     for J := 1 to GlassWidth do begin
       if GlassWorkSheet[I,J]=OldGlassWorkSheet[I,J] then Continue;
       X1 := LeftOfs+(J-1)*BarWidth;
       X2 := X1+BarWidth;
       Y1 := TopOfs+(I-1)*BarHeight;
       Y2 := Y1+BarHeight;
       case GlassWorkSheet[I,J] of
         0: Canvas.Brush.Color := clNavy;
         1: Canvas.Brush.Color := clSilver;
         2: Canvas.Brush.Color := clRed;
         3: Canvas.Brush.Color := clLime;
         4: Canvas.Brush.Color := clBlue;
         5: Canvas.Brush.Color := clFuchsia;
         6: Canvas.Brush.Color := clAqua;
         7: Canvas.Brush.Color := clYellow;
         8: Canvas.Brush.Color := clWhite;
       end;
       if GlassWorkSheet[I,J]>0 then begin
         NewRect := Rect(X1+1,Y1+1,X2-1,Y2-1);
         Canvas.FillRect(NewRect);
         Canvas.Pen.Color := clGray;
         Canvas.MoveTo(X1,Y1);
         Canvas.LineTo(X1,Y2-1);
         Canvas.LineTo(X2-1,Y2-1);
         Canvas.Pen.Color := clWhite;
         Canvas.LineTo(X2-1,Y1);
         Canvas.LineTo(X1,Y1);
       end
       else begin
         NewRect := Rect(X1,Y1,X2,Y2);
         Canvas.FillRect(NewRect);
       end;
     end;
   case FirstFigure of
     0: Move(Triada,CurSheet,SizeOf(CurSheet));
     1: Move(LCorner,CurSheet,SizeOf(CurSheet));
     2: Move(RCorner,CurSheet,SizeOf(CurSheet));
     3: Move(LZigzag,CurSheet,SizeOf(CurSheet));
     4: Move(RZigzag,CurSheet,SizeOf(CurSheet));
     5: Move(Stick,CurSheet,SizeOf(CurSheet));
     6: Move(Box,CurSheet,SizeOf(CurSheet));
   end;
   case FirstColor of
     0: NextColor := clNavy;
     1: NextColor := clSilver;
     2: NextColor := clRed;
     3: NextColor := clLime;
     4: NextColor := clBlue;
     5: NextColor := clFuchsia;
     6: NextColor := clAqua;
     7: NextColor := clYellow;
     8: NextColor := clWhite;
   end;
   for I := 1 to MaxFigureSize-2 do
     for J := 1 to MaxFigureSize do begin
       X1 := NextLeftOfs+(J-1)*NextBarWidth;
       X2 := X1+NextBarWidth;
       Y1 := NextTopOfs+(I-1)*NextBarHeight;
       Y2 := Y1+NextBarHeight;
       if CurSheet[I,J]>0 then begin
         NewRect := Rect(X1+1,Y1+1,X2-1,Y2-1);
         Canvas.Brush.Color := NextColor;
         Canvas.FillRect(NewRect);
         Canvas.Pen.Color := clGray;
         Canvas.MoveTo(X1,Y1);
         Canvas.LineTo(X1,Y2-1);
         Canvas.LineTo(X2-1,Y2-1);
         Canvas.Pen.Color := clWhite;
         Canvas.LineTo(X2-1,Y1);
         Canvas.LineTo(X1,Y1);
       end
       else begin
         Canvas.Brush.Color := clSilver;
         NewRect := Rect(X1,Y1,X2,Y2);
         Canvas.FillRect(NewRect);
       end;
     end;
   Move(GlassWorkSheet,OldGlassWorkSheet,SizeOf(OldGlassWorkSheet));
 end;
 
 function TTetro1.FigureXSize: Byte;
 var
   I,J,K: Byte;
 begin
   K := 0;
   for J := 1 to MaxFigureSize do
     for I := 1 to MaxFigureSize do
       if FigureWorkSheet[J,I]>0 then
         if K<I then K := I;
   FigureXSize := K;
 end;
 
 function TTetro1.FigureYSize: Byte;
 var
   I,J,K: Byte;
 begin
   K := 0;
   for J := 1 to MaxFigureSize do
     for I := 1 to MaxFigureSize do
       if FigureWorkSheet[J,I]>0 then
         if K<J then K := J;
   FigureYSize := K;
 end;
 
 procedure TTetro1.GenerateNewFigure;
 begin
   Timer1.Enabled := False;
   SecondFigure := FirstFigure;
   SecondColor := FirstColor;
   FigureType := SecondFigure;
   FigureX := 5;
   FigureY := 0;
   FigureCorner := fc270;
   FillChar(FigureWorkSheet,SizeOf(FigureWorkSheet),0);
   case FigureType of
     0: Move(Triada,FigureWorkSheet,SizeOf(FigureWorkSheet));
     1: Move(LCorner,FigureWorkSheet,SizeOf(FigureWorkSheet));
     2: Move(RCorner,FigureWorkSheet,SizeOf(FigureWorkSheet));
     3: Move(LZigzag,FigureWorkSheet,SizeOf(FigureWorkSheet));
     4: Move(RZigzag,FigureWorkSheet,SizeOf(FigureWorkSheet));
     5: Move(Stick,FigureWorkSheet,SizeOf(FigureWorkSheet));
     6: Move(Box,FigureWorkSheet,SizeOf(FigureWorkSheet));
   end;
   SetFigureColor;
   FigureMove := mdDown;
   FirstFigure := Random(MaxFigureNumber);
   FirstColor := Random(MaxFigureColor)+1;
   Timer1.Enabled := True;
 end;
 
 procedure TTetro1.ClearFigureIntoGlass;
 var
   I,J: Byte;
 begin
   for J := 1 to FigureYSize do
     for I := 1 to FigureXSize do
       if FigureWorkSheet[J,I]>0 then
         GlassWorkSheet[FigureY+J,FigureX+I] := 0;
 end;
 
 function TTetro1.PutFigureIntoGlass(MoveDirect: TMoveDirect): Boolean;
 var
   I,J: Byte;
 begin
   PutFigureIntoGlass := True;
   if (FigureY+FigureYSize>GlassHeight) and (MoveDirect=mdDown) then begin
     Dec(FigureY);
     PutFigureIntoGlass := False;
     Exit;
   end
   else
     while (FigureX+FigureXSize>GlassWidth) and (MoveDirect=mdDown) do
        Dec(FigureX);
     for J := 1 to FigureYSize do begin
       for I := 1 to FigureXSize do begin
         if (FigureWorkSheet[J,I]>0) and
           (GlassWorkSheet[FigureY+J,FigureX+I]>0) then begin
           PutFigureIntoGlass := False;
           case MoveDirect of
             mdDown:  Dec(FigureY);
             mdRight: Dec(FigureX);
             mdLeft:  Inc(FigureX);
           end;
           Exit;
         end;
       end;
     end;
   for J := 1 to FigureYSize do
     for I := 1 to FigureXSize do
       if FigureWorkSheet[J,I]>0 then
         GlassWorkSheet[FigureY+J,FigureX+I] := FigureWorkSheet[J,I];
   RedrawSheet := False;
   FormPaint(Self);
   RedrawSheet := True;
 end;
 
 procedure TTetro1.ScanFillLines;
 var
   I,J,K,L: byte;
 begin
   ClearFigureIntoGlass;
   for I := 1 to GlassHeight do begin
     K := 0;
     for J := 1 to GlassWidth do
       if GlassWorkSheet[I,J]>0 then Inc(K);
     if K=GlassWidth then begin
       for L := I downto 1 do
         for J := 1 to GlassWidth do
           if L>1 then GlassWorkSheet[L,J] := GlassWorkSheet[L-1,J];
     end;
   end;
   PutFigureIntoGlass(FigureMove);
 end;
 
 procedure TTetro1.Timer1Timer(Sender: TObject);
 var
   I,J: Byte;
 begin
   if ReentTimer then Exit
     else ReentTimer := True;
   if StrToInt(Label3.Caption)<>Level then Label3.Caption := IntToStr(Level);
   if StrToInt(Label4.Caption)<>Score then Label4.Caption := IntToStr(Score);
   if not FigureActive then begin
     GenerateNewFigure;
     if not PutFigureIntoGlass(FigureMove) then begin
       MessageDlg('Glass is full... Game over!',mtInformation,[mbOk],0);
       FillChar(OldGlassWorkSheet,SizeOf(OldGlassWorkSheet),#255);
       Timer1.Enabled := False;
       SpeedButton1.Enabled := False;
       SpeedButton2.Enabled := False;
       SpeedButton3.Enabled := False;
       SpeedButton4.Enabled := False;
       SpeedButton5.Enabled := True;
       SpeedButton6.Enabled := False;
       SpeedButton7.Enabled := False;
       ClearFigureIntoGlass;
       FigureActive := False;
       Level := 1;
       Score := 0;
       for I := 1 to GlassHeight do
         for J := 1 to GlassWidth do GlassWorkSheet[I,J] := 0;
       RedrawSheet := False;
       FormPaint(Self);
       RedrawSheet := True;
     end;
     FigureActive := True;
   end
   else begin
     ClearFigureIntoGlass;
     Inc(FigureY);
     if not PutFigureIntoGlass(FigureMove) then begin
       case FigureType of
         0: Score := Score+10;
         1: Score := Score+30;
         2: Score := Score+30;
         3: Score := Score+25;
         4: Score := Score+25;
         5: Score := Score+15;
         6: Score := Score+20;
       end;
       if Score>300 then Level := 2;
       if Score>700 then Level := 3;
       if Score>1300 then Level := 4;
       if Score>2000 then Level := 5;
       if Score>3000 then Level := 6;
       if Score>5000 then Level := 7;
       Timer1.Interval := Round((7.1-Level)*100);
       FigureActive := False;
     end;
   end;
   ScanFillLines;
   ReentTimer := False;
 end;
 
 procedure TTetro1.FormCreate(Sender: TObject);
 begin
   FillChar(OldGlassWorkSheet,SizeOf(OldGlassWorkSheet),#255);
   RedrawSheet := True;
   with Bevel3 do begin
     Top := TopOfs-FieldWidth;
     Left := LeftOfs-FieldWidth;
     Width := GlassWidth*BarWidth+FieldWidth*2;
     Height := GlassHeight*BarHeight+FieldWidth*2;
   end;
   ClientWidth := Bevel3.Width+FieldWidth*3+SpeedButton5.Width;
   ClientHeight := Bevel3.Height+FieldWidth*2;
   SpeedButton1.Left := Bevel3.Width+FieldWidth*2-2;
   SpeedButton2.Left := SpeedButton1.Left+SpeedButton1.Width+1;
   SpeedButton3.Left := SpeedButton2.Left+SpeedButton2.Width+1;
   SpeedButton4.Left := SpeedButton2.Left;
   SpeedButton5.Left := Bevel3.Width+FieldWidth*2;
   SpeedButton6.Left := SpeedButton5.Left;
   SpeedButton7.Left := SpeedButton5.Left;
   SpeedButton8.Left := SpeedButton5.Left;
   SpeedButton9.Left := SpeedButton5.Left;
   Label1.Left := Bevel3.Width+FieldWidth*2;
   Label2.Left := Label1.Left;
   Bevel1.Left := Label1.Left;
   Bevel1.Width := SpeedButton5.Width;
   Bevel2.Left := Label1.Left;
   Bevel2.Width := SpeedButton5.Width;
   Label3.Left := Bevel1.Left+FieldWidth;
   Label4.Left := Bevel1.Left+FieldWidth;
   Bevel4.Top := SpeedButton9.Top+SpeedButton9.Height+4;
   Bevel4.Left := SpeedButton9.Left+SpeedButton9.Width div 4-4;
   Bevel4.Height := NextBarHeight*(MaxFigureSize-1)+4;
   Bevel4.Width :=NextBarWidth*MaxFigureSize+8;
   NextTopOfs := SpeedButton9.Top+SpeedButton9.Height+8;
   NextLeftOfs := SpeedButton9.Left+SpeedButton9.Width div 4;
   Level := 1;
   Timer1.Interval := Round((6.5-Level)*100);
   Score := 0;
   ReentTimer := False;
   ReentKeys := False;
   FigureActive := False;
   Label3.Caption := '1';
   Label4.Caption := '0';
   Randomize;
   FirstFigure := Random(MaxFigureNumber);
   FirstColor := Random(MaxFigureColor)+1;
 end;
 
 procedure TTetro1.RotateFigure;
 var
   OldFigureCornet: TFigureCorner;
   CurSheet:        TFigureWorksheet;
   OldFigureCorner: TFigureCorner;
 procedure RotateFigureWorksheet;
 var
   VertFlag:  Byte;
   HorizFlag: Byte;
   K,I,J:     Byte;
 begin
   FillChar(FigureWorkSheet,SizeOf(FigureWorkSheet),0);
   case FigureType of
     0: Move(Triada,FigureWorkSheet,SizeOf(FigureWorkSheet));
     1: Move(LCorner,FigureWorkSheet,SizeOf(FigureWorkSheet));
     2: Move(RCorner,FigureWorkSheet,SizeOf(FigureWorkSheet));
     3: Move(LZigzag,FigureWorkSheet,SizeOf(FigureWorkSheet));
     4: Move(RZigzag,FigureWorkSheet,SizeOf(FigureWorkSheet));
     5: Move(Stick,FigureWorkSheet,SizeOf(FigureWorkSheet));
     6: Move(Box,FigureWorkSheet,SizeOf(FigureWorkSheet));
   end;
   FillChar(CurSheet,SizeOf(CurSheet),0);
   for K := 0 to Byte(FigureCorner) do begin
     for I := 1 to MaxFigureSize do
       for J := 1 to MaxFigureSize do
         CurSheet[J,I] := FigureWorkSheet[MaxFigureSize-I+1,J];
     Move(CurSheet,FigureWorkSheet,SizeOf(FigureWorkSheet));
   end;
   SetFigureColor;
   HorizFlag := 0;
   while HorizFlag=0 do begin
     for I := 1 to MaxFigureSize do
       if FigureWorkSheet[1,I]>0 then HorizFlag := 1;
     if HorizFlag=0 then begin
       for J := 1 to MaxFigureSize-1 do
         for I := 1 to MaxFigureSize do
           FigureWorkSheet[J,I] := FigureWorkSheet[J+1,I];
       for J := 1 to MaxFigureSize do
         FigureWorkSheet[MaxFigureSize,J] := 0;
     end;
   end;
   VertFlag := 0;
   while VertFlag=0 do begin
     for J := 1 to MaxFigureSize do
       if FigureWorkSheet[J,1]>0 then VertFlag := 1;
     if VertFlag=0 then begin
       for J := 1 to MaxFigureSize do
         for I := 1 to MaxFigureSize-1 do
           FigureWorkSheet[J,I] := FigureWorkSheet[J,I+1];
       for J := 1 to MaxFigureSize do
         FigureWorkSheet[J,MaxFigureSize] := 0;
     end;
   end;
 end;
 begin
   ClearFigureIntoGlass;
   OldFigureCorner := FigureCorner;
   if FigureCorner>fc00 then Dec(FigureCorner)
     else FigureCorner := fc270;
   RotateFigureWorksheet;
   if not PutFigureIntoGlass(mdDown) then begin
     FigureCorner := OldFigureCorner;
     RotateFigureWorksheet;
     PutFigureIntoGlass(mdDown);
   end;
 end;
 
 procedure TTetro1.FormKeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
 begin
   if ReentKeys then Exit
     else ReentKeys := True;
   if not FigureActive then begin
     ReentKeys := False;
     Exit;
   end;
   case Key of
     VK_UP:    RotateFigure;
     VK_DOWN,
     VK_SPACE: begin
                 repeat
                   ClearFigureIntoGlass;
                   Inc(FigureY);
                 until not PutFigureIntoGlass(mdDown);
                 Inc(Score,5);
               end;
     VK_LEFT:  if FigureX>0 then begin
                 ClearFigureIntoGlass;
                 Dec(FigureX);
                 PutFigureIntoGlass(mdLeft);
               end;
     VK_RIGHT: if FigureX+FigureXSize<GlassWidth then begin
                 ClearFigureIntoGlass;
                 Inc(FigureX);
                 PutFigureIntoGlass(mdRight);
               end;
   end;
   ReentKeys := False;
 end;
 
 procedure TTetro1.SetFigureColor;
 var
   I,J: Byte;
 begin
   for I := 1 to MaxFigureSize do
     for J := 1 to MaxFigureSize do
       if FigureWorkSheet[I,J]>0 then FigureWorkSheet[I,J] := SecondColor;
 end;
 
 procedure TTetro1.SpeedButton8Click(Sender: TObject);
 begin
   if MessageDlg('Exit programm?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
     Application.Terminate;
 end;
 
 procedure TTetro1.SpeedButton5Click(Sender: TObject);
 begin
   Timer1.Enabled := True;
   SpeedButton5.Enabled := False;
   SpeedButton1.Enabled := True;
   SpeedButton2.Enabled := True;
   SpeedButton3.Enabled := True;
   SpeedButton4.Enabled := True;
   SpeedButton6.Enabled := True;
   SpeedButton7.Enabled := True;
 end;
 
 procedure TTetro1.SpeedButton6Click(Sender: TObject);
 begin
   if Timer1.Enabled then begin
     Timer1.Enabled := False;
     SpeedButton1.Enabled := False;
     SpeedButton2.Enabled := False;
     SpeedButton3.Enabled := False;
     SpeedButton4.Enabled := False;
     SpeedButton7.Enabled := False;
   end
   else begin
     Timer1.Enabled := True;
     SpeedButton1.Enabled := True;
     SpeedButton2.Enabled := True;
     SpeedButton3.Enabled := True;
     SpeedButton4.Enabled := True;
     SpeedButton7.Enabled := True;
   end;
 end;
 
 procedure TTetro1.SpeedButton7Click(Sender: TObject);
 var
   I,J: Byte;
 begin
   Timer1.Enabled := False;
   ClearFigureIntoGlass;
   FigureActive := False;
   Level := 1;
   Score := 0;
   for I := 1 to GlassHeight do
     for J := 1 to GlassWidth do GlassWorkSheet[I,J] := 0;
   RedrawSheet := False;
   FormPaint(Self);
   RedrawSheet := True;
   Timer1.Enabled := True;
 end;
 
 procedure TTetro1.SpeedButton2Click(Sender: TObject);
 begin
   Timer1.Enabled := False;
   RotateFigure;
   Timer1.Enabled := True;
 end;
 
 procedure TTetro1.SpeedButton1Click(Sender: TObject);
 begin
   Timer1.Enabled := False;
   if FigureX>0 then begin
     ClearFigureIntoGlass;
     Dec(FigureX);
     PutFigureIntoGlass(mdLeft);
   end;
   Timer1.Enabled := True;
 end;
 
 procedure TTetro1.SpeedButton3Click(Sender: TObject);
 begin
   Timer1.Enabled := False;
   if FigureX+FigureXSize<GlassWidth then begin
     ClearFigureIntoGlass;
     Inc(FigureX);
     PutFigureIntoGlass(mdRight);
   end;
   Timer1.Enabled := True;
 end;
 
 procedure TTetro1.SpeedButton4Click(Sender: TObject);
 begin
   Timer1.Enabled := False;
   repeat
     ClearFigureIntoGlass;
     Inc(FigureY);
   until not PutFigureIntoGlass(mdDown);
   Inc(Score,5);
   Timer1.Enabled := True;
 end;
 
 procedure TTetro1.SpeedButton9Click(Sender: TObject);
 var
   OldState: Boolean;
 begin
   OldState := Timer1.Enabled;
   Timer1.Enabled := False;
   Tetro2.ShowModal;
   Timer1.Enabled := OldState;
 end;
 
 end.
 
 //*****************Tetro1.dfm
 object Tetro1: TTetro1
   Left = 309
   Top = 141
   BorderIcons = [biSystemMenu, biMinimize]
   BorderStyle = bsSingle
   Caption = 'Simple tetris'
   ClientHeight = 271
   ClientWidth = 192
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clBlack
   Font.Height = -12
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   Icon.Data = {
     0000010001002020100000000000E80200001600000028000000200000004000
     0000010004000000000080020000000000000000000000000000000000000000
     0000000080000080000000808000800000008000800080800000C0C0C0008080
     80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000
     0000000000000000000000000000000000000000000000000000000000000000
     00000000F888888880F888888880000000000000F777777780F7777777800099
     0BB0BB00F777777780F77777778000990BB0BB00F777777780F7777777800000
     00000000F777777780F77777778000AA0EE0EE00F777777780F77777778000AA
     0EE0EE00F777777780F77777778000000EE00000F777777780F77777778000EE
     EEEEEE00FFFFFFFFF0FFFFFFFFF000EEEEEEEE000000000000000000000000EE
     EEEEEE000000000000F88888888000EEEEEEEE0BB099000000F77777778000EE
     EEEEEE0BB099000000F77777778000EEEEEEEE000000000000F77777778000EE
     EEEEEEEEEEEE000000F77777778000EEEEEEEEEEEEEE000000F77777778000EE
     0000EEEEEEEE000000F77777778000EE0AA0EEEEEEEE000000F77777778000EE
     0AA0EEEEEEEE000000FFFFFFFFF000EE0000EEEEEEEE000000000000000000EE
     0AA0EEEEEEEE000000F88888888000EE0AA0EEEEEEEE000000F77777778000EE
     0000000EEEEE000000F77777778000EE0AA0AA0EEEEE000000F77777778000EE
     0AA0AA0EEEEE000000F77777778000EE0000000EEEEE000000F77777778000EE
     EEEEEEEEEEEE000000F77777778000EEEEEEEEEEEEEE000000F7777777800000
     000000000000000000FFFFFFFFF000000000000000000000000000000000FFFF
     FFFFFFE000008000000080000000800000008000000080000000800000008000
     0000800000008000000080000000800078008000780080007800800078008000
     7800800078008000780080007800800078008000780080007800800078008000
     7800800078008000780080007800800078008000780080007800FFFFF800}
   OldCreateOrder = True
   Position = poScreenCenter
   Visible = True
   OnCreate = FormCreate
   OnKeyDown = FormKeyDown
   OnPaint = FormPaint
   PixelsPerInch = 96
   TextHeight = 13
   object Label1: TLabel
     Left = 128
     Top = 171
     Width = 32
     Height = 13
     Caption = 'Level'
     Font.Charset = DEFAULT_CHARSET
     Font.Color = clBlack
     Font.Height = -12
     Font.Name = 'MS Sans Serif'
     Font.Style = [fsBold]
     ParentFont = False
   end
   object Label2: TLabel
     Left = 128
     Top = 206
     Width = 34
     Height = 13
     Caption = 'Score'
     Font.Charset = DEFAULT_CHARSET
     Font.Color = clBlack
     Font.Height = -12
     Font.Name = 'MS Sans Serif'
     Font.Style = [fsBold]
     ParentFont = False
   end
   object Label3: TLabel
     Left = 131
     Top = 188
     Width = 12
     Height = 13
     Caption = '99'
   end
   object Label4: TLabel
     Left = 131
     Top = 223
     Width = 30
     Height = 13
     Caption = '99999'
   end
   object Bevel3: TBevel
     Left = 3
     Top = 3
     Width = 115
     Height = 264
   end
   object SpeedButton1: TSpeedButton
     Left = 128
     Top = 126
     Width = 21
     Height = 21
     Hint = 'Move left'
     Enabled = False
     Glyph.Data = {
       76010000424D7601000000000000760000002800000020000000100000000100
       04000000000000010000120B0000120B00001000000000000000000000000000
       800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       3333333333333FF3333333333333003333333333333F77F33333333333009033
       333333333F7737F333333333009990333333333F773337FFFFFF330099999000
       00003F773333377777770099999999999990773FF33333FFFFF7330099999000
       000033773FF33777777733330099903333333333773FF7F33333333333009033
       33333333337737F3333333333333003333333333333377333333333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       3333333333333333333333333333333333333333333333333333}
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton1Click
   end
   object SpeedButton2: TSpeedButton
     Left = 149
     Top = 126
     Width = 21
     Height = 21
     Hint = 'Rotate'
     Enabled = False
     Glyph.Data = {
       CE070000424DCE07000000000000360000002800000024000000120000000100
       1800000000009807000000000000000000000000000000000000008080008080
       0080800080800080800080808000008000008000008000008000008000000080
       80008080008080008080008080008080008080008080008080008080008080FF
       FFFF808080808080808080808080808080808080008080FFFFFF008080008080
       0080800080800080800080008000000080800080808000000080000080000080
       0000800000800000800080000080000000808000808000808000808000808080
       8080808080FFFFFF008080808080008080008080008080008080008080008080
       808080808080FFFFFF0080800080800080800080800080000080008000008000
       0000800000800000800000800000800000800000800000800000800080000000
       8080008080008080008080808080FFFFFF808080808080008080008080FFFFFF
       FFFFFFFFFFFFFFFFFFFFFFFF008080008080808080FFFFFF0080800080800080
       8000800000800000800000800000800000800000FF0000FF0000FF0000FF0000
       FF00008000008000008000800000008080008080008080808080FFFFFF008080
       008080008080FFFFFF808080808080808080808080808080FFFFFF0080800080
       80808080FFFFFF00808000808000800000800000800000800000800000FF0000
       808000808000808000808000808000FF00008000008000008000800000008080
       008080808080FFFFFF008080008080FFFFFF8080800080800080800080800080
       80008080808080FFFFFF008080008080808080FFFFFF00808000800000800000
       800000800000800000808000808000808000808000808000808000808000FF00
       008000008000800000008080008080808080FFFFFF0080800080808080800080
       80008080008080008080008080008080008080808080FFFFFF008080808080FF
       FFFF008080008000008000008000008000008000008000008080008080008080
       00808000808000808000FF00800000800000800000008080008080808080FFFF
       FFFFFFFFFFFFFFFFFFFF808080FFFFFF00808000808000808000808000808080
       808080808080808080808000808000808000FF0000FF0000FF0000FF0000FF00
       00FF0000FF000080800080800080800080800080800080800080800080800080
       8000808000808080808080808080808080808080808080808080808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080FFFFFFFFFFFFFFFFFFFFFFFF
       FFFFFFFFFFFF0080800080800080800080800080800080800080800080800080
       8000808000808000808080000080000080000080000080000080000000808000
       8080FFFFFFFFFFFFFFFFFFFFFFFF008080008080008080008080008080008080
       80808080808080808080808080808080808000808000FF008000008000008000
       0000808000808000808000808000808000808000FF0000800000800000800000
       8000008000800000008080808080808080808080808080FFFFFF008080008080
       008080008080008080808080FFFFFF0080800080800080800080808080800080
       8000FF0000800000800080000000808000808000808000808000808000808000
       808000FF00008000008000008000008000800000008080808080FFFFFF008080
       808080FFFFFF0080800080800080800080800080800080808080800080800080
       8000808000808080808000808000808000FF0000800000800080000000808000
       8080008080008080008080800000800000008000008000008000008000800000
       008080008080808080008080008080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFF
       FF80808080808000808000808000808000808080808000808000808000FF0000
       8000008000008000800000800000800000800000800000008000008000008000
       008000008000008000800000008080008080808080FFFFFF0080800080808080
       80808080808080808080808080008080008080008080FFFFFFFFFFFF00808080
       808000808000808000808000FF00008000008000008000008000008000008000
       00800000800000800000800000FF0000FF000080008000000080800080800080
       80808080FFFFFFFFFFFF008080008080008080008080008080008080FFFFFFFF
       FFFF808080808080FFFFFF80808000808000808000808000808000FF0000FF00
       00800000800000800000800000800000800000FF0000FF0000808000808000FF
       00008080008080008080008080008080808080808080FFFFFFFFFFFFFFFFFFFF
       FFFFFFFFFFFFFFFF808080808080008080008080808080008080008080008080
       00808000808000808000808000FF0000FF0000FF0000FF0000FF0000FF000080
       8000808000808000808000808000808000808000808000808000808000808000
       8080808080808080808080808080808080808080008080008080008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       008080008080008080008080008080008080}
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton2Click
   end
   object SpeedButton3: TSpeedButton
     Left = 170
     Top = 126
     Width = 21
     Height = 21
     Hint = 'Move right'
     Enabled = False
     Glyph.Data = {
       76010000424D7601000000000000760000002800000020000000100000000100
       04000000000000010000120B0000120B00001000000000000000000000000000
       800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
       3333333333333333333333333333333333333333333333333333333333333333
       3333333333333333333333333333333333333333333FF3333333333333003333
       3333333333773FF3333333333309003333333333337F773FF333333333099900
       33333FFFFF7F33773FF30000000999990033777777733333773F099999999999
       99007FFFFFFF33333F7700000009999900337777777F333F7733333333099900
       33333333337F3F77333333333309003333333333337F77333333333333003333
       3333333333773333333333333333333333333333333333333333333333333333
       3333333333333333333333333333333333333333333333333333}
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton3Click
   end
   object SpeedButton4: TSpeedButton
     Left = 149
     Top = 148
     Width = 21
     Height = 21
     Hint = 'Put'
     Enabled = False
     Glyph.Data = {
       76010000424D7601000000000000760000002800000020000000100000000100
       04000000000000010000120B0000120B00001000000000000000000000000000
       800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
       FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333303333
       333333333337F33333333333333033333333333333373F333333333333090333
       33333333337F7F33333333333309033333333333337373F33333333330999033
       3333333337F337F33333333330999033333333333733373F3333333309999903
       333333337F33337F33333333099999033333333373333373F333333099999990
       33333337FFFF3FF7F33333300009000033333337777F77773333333333090333
       33333333337F7F33333333333309033333333333337F7F333333333333090333
       33333333337F7F33333333333309033333333333337F7F333333333333090333
       33333333337F7F33333333333300033333333333337773333333}
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton4Click
   end
   object SpeedButton5: TSpeedButton
     Left = 127
     Top = 4
     Width = 62
     Height = 20
     Hint = 'Start game'
     Caption = '&Start'
     Glyph.Data = {
       CE070000424DCE07000000000000360000002800000024000000120000000100
       1800000000009807000000000000000000000000000000000000008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080FFFFFF008080008080008080008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8080000080000000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080808080808080FFFFFF
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808080000000800000800080000000808000808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       808080008080008080808080FFFFFF0080800080800080800080800080800080
       8000808000808000808000808000808000808080000000800000800000800000
       8000800000008080008080008080008080008080008080008080008080008080
       008080008080008080808080008080008080008080008080808080FFFFFF0080
       8000808000808000808000808000808000808000808000808000808080000000
       8000008000008000008000008000008000800000008080008080008080008080
       0080800080800080800080800080800080808080800080800080800080800080
       80008080008080808080FFFFFF00808000808000808000808000808000808000
       808000808080000000800000800000800000FF00008000008000008000008000
       800000008080008080008080008080008080008080008080008080808080FFFF
       FF008080008080808080FFFFFF008080008080008080808080FFFFFF00808000
       808000808000808000808000808000808000800000800000800000FF00008080
       00FF000080000080000080008000000080800080800080800080800080800080
       80008080008080808080FFFFFF008080808080008080808080FFFFFF00808000
       8080808080FFFFFF00808000808000808000808000808000808000808000FF00
       00800000FF0000808000808000808000FF000080000080000080008000000080
       80008080008080008080008080008080008080808080FFFFFF80808000808000
       8080008080808080FFFFFF008080008080808080FFFFFF008080008080008080
       00808000808000808000808000FF0000808000808000808000808000808000FF
       0000800000800000800080000000808000808000808000808000808000808000
       8080808080008080008080008080008080008080808080FFFFFF008080008080
       808080FFFFFF0080800080800080800080800080800080800080800080800080
       8000808000808000808000808000FF0000800000800000800080000000808000
       8080008080008080008080008080008080008080008080008080008080008080
       008080808080FFFFFF008080008080808080FFFFFF0080800080800080800080
       8000808000808000808000808000808000808000808000808000808000FF0000
       8000008000008000800000008080008080008080008080008080008080008080
       008080008080008080008080008080008080808080FFFFFF0080800080808080
       80FFFFFF00808000808000808000808000808000808000808000808000808000
       808000808000808000808000FF00008000008000008000800000008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       80808080FFFFFF008080008080808080FFFFFF00808000808000808000808000
       808000808000808000808000808000808000808000808000808000FF00008000
       0080000080008000000080800080800080800080800080800080800080800080
       80008080008080008080008080008080808080FFFFFF008080008080808080FF
       FFFF008080008080008080008080008080008080008080008080008080008080
       00808000808000808000FF000080000080008000000080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808080
       8080FFFFFF008080808080FFFFFF008080008080008080008080008080008080
       00808000808000808000808000808000808000808000808000FF000080000080
       0000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080808080FFFFFF808080008080008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000FF0000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080008080008080808080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       008080008080008080008080008080008080}
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton5Click
   end
   object SpeedButton6: TSpeedButton
     Left = 127
     Top = 26
     Width = 62
     Height = 21
     Hint = 'Pause game'
     Caption = '&Pause'
     Enabled = False
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton6Click
   end
   object SpeedButton7: TSpeedButton
     Left = 127
     Top = 49
     Width = 62
     Height = 20
     Hint = 'Reset game'
     Caption = '&Reset'
     Enabled = False
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton7Click
   end
   object SpeedButton8: TSpeedButton
     Left = 127
     Top = 247
     Width = 62
     Height = 21
     Hint = 'Exit program'
     Caption = '&Close'
     Glyph.Data = {
       CE070000424DCE07000000000000360000002800000024000000120000000100
       1800000000009807000000000000000000000000000000000000008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       0080800080800080800080800080800080808080808080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080FFFFFF008080008080008080008080008080008080
       0080800080800080800080800080800080800080800080800080800000FF0000
       800000808080800080800080800080800080800080800000FF80808000808000
       8080008080008080008080008080008080008080808080808080FFFFFF008080
       008080008080008080008080008080FFFFFF0080800080800080800080800080
       800080800080800000FF00008000008000008080808000808000808000808000
       00FF000080000080808080008080008080008080008080008080008080808080
       FFFFFF008080808080FFFFFF008080008080008080FFFFFF808080808080FFFF
       FF0080800080800080800080800080800080800000FF00008000008000008000
       00808080800080800000FF000080000080000080000080808080008080008080
       008080008080008080808080FFFFFF008080008080808080FFFFFF008080FFFF
       FF808080008080008080808080FFFFFF00808000808000808000808000808000
       80800000FF000080000080000080000080808080000080000080000080000080
       000080808080008080008080008080008080008080808080FFFFFF0080800080
       80008080808080FFFFFF808080008080008080008080008080808080FFFFFF00
       80800080800080800080800080800080800000FF000080000080000080000080
       0000800000800000800000808080800080800080800080800080800080800080
       80008080808080FFFFFF00808000808000808080808000808000808000808000
       8080FFFFFF808080008080008080008080008080008080008080008080008080
       0000FF0000800000800000800000800000800000808080800080800080800080
       80008080008080008080008080008080008080808080FFFFFF00808000808000
       8080008080008080008080FFFFFF808080008080008080008080008080008080
       0080800080800080800080800080800000800000800000800000800000808080
       8000808000808000808000808000808000808000808000808000808000808000
       8080808080FFFFFF008080008080008080008080008080808080008080008080
       0080800080800080800080800080800080800080800080800080800000FF0000
       8000008000008000008080808000808000808000808000808000808000808000
       8080008080008080008080008080008080808080FFFFFF008080008080008080
       8080800080800080800080800080800080800080800080800080800080800080
       800080800000FF00008000008000008000008000008080808000808000808000
       8080008080008080008080008080008080008080008080008080008080808080
       008080008080008080008080808080FFFFFF0080800080800080800080800080
       800080800080800080800080800000FF00008000008000008080808000008000
       0080000080808080008080008080008080008080008080008080008080008080
       008080008080808080008080008080008080008080008080808080FFFFFF0080
       800080800080800080800080800080800080800080800000FF00008000008000
       00808080800080800000FF000080000080000080808080008080008080008080
       008080008080008080008080008080808080008080008080008080808080FFFF
       FF008080008080808080FFFFFF00808000808000808000808000808000808000
       80800000FF0000800000808080800080800080800080800000FF000080000080
       000080808080008080008080008080008080008080008080808080FFFFFF0080
       80008080808080008080808080FFFFFF008080008080808080FFFFFF00808000
       80800080800080800080800080800080800000FF000080008080008080008080
       0080800080800000FF0000800000800000800080800080800080800080800080
       80008080808080FFFFFFFFFFFF808080008080008080008080808080FFFFFF00
       8080008080808080FFFFFF008080008080008080008080008080008080008080
       0080800080800080800080800080800080800080800000FF0000800000FF0080
       8000808000808000808000808000808000808080808080808000808000808000
       8080008080008080808080FFFFFFFFFFFFFFFFFF808080008080008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080808080808080808080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       008080008080008080008080008080008080}
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton8Click
   end
   object Bevel1: TBevel
     Left = 127
     Top = 185
     Width = 62
     Height = 18
   end
   object Bevel2: TBevel
     Left = 127
     Top = 220
     Width = 62
     Height = 17
   end
   object Bevel4: TBevel
     Left = 127
     Top = 94
     Width = 62
     Height = 30
   end
   object SpeedButton9: TSpeedButton
     Left = 127
     Top = 72
     Width = 62
     Height = 20
     Hint = 'Show help'
     Caption = '&Help'
     Glyph.Data = {
       CE070000424DCE07000000000000360000002800000024000000120000000100
       1800000000009807000000000000000000000000000000000000008080008080
       0080800080800080800080800080800080808080008080000080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080FFFFFFFFFFFF008080008080008080008080008080008080008080
       0080800080800080800080800080800080800080800080800080808080008000
       0080000080800000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080808080808080FFFFFF008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       80008080008080FFFF0080800080800080000000808000808000808000808000
       8080008080008080008080008080008080008080008080008080808080FFFFFF
       008080808080FFFFFF0080800080800080800080800080800080800080800080
       80008080008080008080008080008080008080008080FFFF0080800080800000
       8080008080008080008080008080008080008080008080008080008080008080
       008080008080808080FFFFFFFFFFFF808080FFFFFF0080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       0080800080800080800080800080800080800080808080808080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080800000800000808000008080008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       80008080FFFFFFFFFFFF00808000808000808000808000808000808000808000
       8080008080008080008080008080008080008080008080808000808000808000
       8000000080800080800080800080800080800080800080800080800080800080
       80008080008080008080008080808080808080808080FFFFFF00808000808000
       8080008080008080008080008080008080008080008080008080008080008080
       008080FFFF008080008080008000000080800080800080800080800080800080
       80008080008080008080008080008080008080008080808080FFFFFF00808080
       8080FFFFFF008080008080008080008080008080008080008080008080008080
       008080008080008080008080008080FFFF008080008080008080008000000080
       8000808000808000808000808000808000808000808000808000808000808000
       8080808080FFFFFF008080808080FFFFFF008080008080008080008080008080
       008080008080008080008080008080008080008080008080008080008080FFFF
       0080800080800080800080000000808000808000808000808000808000808000
       8080008080008080008080008080808080FFFFFF008080008080808080FFFFFF
       0080800080800080800080800080800080800080800080800080800080800080
       80008080008080008080008080FFFF0080800080800080800080000000808000
       8080008080008080008080008080008080008080008080008080008080808080
       FFFFFF008080008080808080FFFFFF0080800080800080800080800080800080
       80008080008080008080008080800000800000008080008080008080FFFF0080
       8000808000808000800000008080008080008080008080008080008080008080
       008080FFFFFF008080008080808080FFFFFF008080008080808080FFFFFF0080
       8000808000808000808000808000808000808000808080800080800080800080
       0000008080008080008080FFFF00808000808000800000008080008080008080
       008080008080008080008080808080808080FFFFFF008080008080808080FFFF
       FF008080008080808080FFFFFF00808000808000808000808000808000808000
       8080FFFF00808000808000808000800000800000800000808000808000808000
       800000008080008080008080008080008080008080808080FFFFFF0080808080
       80FFFFFFFFFFFFFFFFFF808080008080008080808080FFFFFF00808000808000
       8080008080008080008080008080008080FFFF00808000808000808000808000
       8080008080008080008080008080000080800080800080800080800080800080
       80808080FFFFFF00808000808080808080808080808000808000808000808080
       8080FFFFFF008080008080008080008080008080008080008080008080008080
       FFFF00FFFF008080008080008080008080008080008080000080800080800080
       80008080008080008080008080008080808080FFFFFFFFFFFF00808000808000
       8080008080008080008080808080008080008080008080008080008080008080
       008080008080008080008080008080008080FFFF00FFFF00FFFF00FFFF00FFFF
       0000808000808000808000808000808000808000808000808000808000808080
       8080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080008080008080008080
       0080800080800080800080800080800080800080800080800080800080800080
       8000808000808000808000808000808000808000808000808000808000808000
       8080008080008080008080008080008080808080808080808080808080808080
       008080008080008080008080008080008080}
     NumGlyphs = 2
     ParentShowHint = False
     ShowHint = True
     OnClick = SpeedButton9Click
   end
   object Timer1: TTimer
     Enabled = False
     Interval = 100
     OnTimer = Timer1Timer
     Left = 4
     Top = 4
   end
 end
 
  ---- fire engine   
 
      | 
 
 
 |