nFillLines;
procedure SetFigureColor;
end;
var
Form1: TForm1;
implementation
uses unit2;
{$R *.DFM}
procedure TForm1.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