git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.jcl@20 c37d764d-f447-7644-a108-883140d013fb
86 lines
1.5 KiB
ObjectPascal
86 lines
1.5 KiB
ObjectPascal
unit ClipLineDemoMain;
|
|
|
|
{$I jcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Classes,
|
|
{$IFDEF MSWINDOWS}
|
|
Windows,
|
|
{$ENDIF}
|
|
Graphics, ExtCtrls, Forms, JclGraphUtils,
|
|
JclBase;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
Timer1: TTimer;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormPaint(Sender: TObject);
|
|
procedure Timer1Timer(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
R: TRect;
|
|
P: TPointArray;
|
|
FPenColor: TColor;
|
|
FPenColorLight: TColor;
|
|
procedure InitLines;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
Randomize;
|
|
R.Left := 100;
|
|
R.Top := 100;
|
|
R.Right := 300;
|
|
R.Bottom := 300;
|
|
SetLength(P, 50);
|
|
InitLines;
|
|
end;
|
|
|
|
procedure TForm1.FormPaint(Sender: TObject);
|
|
begin
|
|
Canvas.Brush.Color := clWhite;
|
|
Canvas.FillRect(R);
|
|
Canvas.Pen.Color := FPenColorLight;
|
|
Canvas.PolyLine(P);
|
|
Canvas.Pen.Color := FPenColor;
|
|
DrawPolyLine(Canvas, P, R);
|
|
end;
|
|
|
|
procedure TForm1.InitLines;
|
|
var
|
|
i: Integer;
|
|
H, S, L: Single;
|
|
begin
|
|
for i := 0 to Length(P)-1 do
|
|
begin
|
|
P[i].X := Random(Width);
|
|
P[i].Y := Random(Height);
|
|
end;
|
|
H := Random;
|
|
S := Random;
|
|
L := 0.4 * Random;
|
|
|
|
FPenColor := WinColor(HSLToRGB(H, S, L));
|
|
FPenColorLight := WinColor(HSLToRGB(H, S, 1 - 0.2 * (1 - L)));
|
|
end;
|
|
|
|
procedure TForm1.Timer1Timer(Sender: TObject);
|
|
begin
|
|
InitLines;
|
|
Refresh;
|
|
end;
|
|
|
|
end.
|
|
|