unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
StartColor, StopColor: TColor;
i, FNumOfColor: Integer;
StartRed, StartGreen, StartBlue: Integer;
StopRed, StopGreen, StopBlue: Integer;
Red, Green, Blue: Integer;
begin
StartColor := $0014097B;
StopColor := $00D8D5FD;
FNumOfColor := 50;
StartRed := StartColor and $FF;
StartGreen := (StartColor and $FF00) shr 8;
StartBlue := (StartColor and $FF0000) shr 16;
StopRed := StopColor and $FF;
StopGreen := (StopColor and $FF00) shr 8;
StopBlue := (StopColor and $FF0000) shr 16;
for i := 0 to FNumOfColor do
begin
Red := Round((i/FNumOfColor*StopRed + (FNumOfColor-i)/FNumOfColor*StartRed ));
Green := Round((i/FNumOfColor*StopGreen + (FNumOfColor-i)/FNumOfColor*StartGreen));
Blue := Round((i/FNumOfColor*StopBlue + (FNumOfColor-i)/FNumOfColor*StartBlue ));
Canvas.Pen.Color := Red + Green shl 8 + Blue shl 16;
Canvas.Ellipse(FNumOfColor+i,FNumOfColor+i,150-i,150-i);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
StartColor, StopColor: TColor;
i, FNumOfColor: Integer;
StartRed, StartGreen, StartBlue: Integer;
StopRed, StopGreen, StopBlue: Integer;
Red, Green, Blue: Integer;
begin
StartColor := $0014097B;
StopColor := $00D8D5FD;
FNumOfColor := 50;
StartRed := StartColor and $FF;
StartGreen := (StartColor and $FF00) shr 8;
StartBlue := (StartColor and $FF0000) shr 16;
StopRed := StopColor and $FF;
StopGreen := (StopColor and $FF00) shr 8;
StopBlue := (StopColor and $FF0000) shr 16;
for i := 0 to FNumOfColor do
begin
Red := Round((i/FNumOfColor*StopRed + (FNumOfColor-i)/FNumOfColor*StartRed ));
Green := Round((i/FNumOfColor*StopGreen + (FNumOfColor-i)/FNumOfColor*StartGreen));
Blue := Round((i/FNumOfColor*StopBlue + (FNumOfColor-i)/FNumOfColor*StartBlue ));
Canvas.Pen.Color := Red + Green shl 8 + Blue shl 16;
Canvas.Ellipse(FNumOfColor+i,FNumOfColor+i,150-i,150-i);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i, j: Integer;
Dct: TRect;
begin
j := Form1.height;
for i := 0 to 255 do
begin
if i<128 then
Canvas.Brush.Color := RGB(i*2, 0, 0)
else
Canvas.Brush.Color := RGB(255, (i-128)*2, (i-128)*2) ;
Dct := Rect(i*2, 0, (i+1)*2, j);
Canvas.FillRect(Dct);
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
var i:word;dy,y:real;
begin
dy:=(clientheight/256)*1/2;
y:=0;
for i:=0 to 255 do
begin//rgb(0,0,0)->rgb(0,255,0)
canvas.Brush.color:=RGB(0,i,0);//$00000000+i*10000;
canvas.FillRect(rect(0,round
,clientwidth,round(y+dy)));
y:=y+dy;
end;
for i:=255 downto 0 do
begin//rgb(0,255,0)->rgb(0,0,0)
canvas.Brush.color:=RGB(0,i,0);//$00000000+i*10000;
canvas.FillRect(rect(0,round
,clientwidth,round(y+dy)));
y:=y+dy;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
r :integer;
i :integer;
x1,y1 :integer;
// x2,y2 :integer;
step :real;
StepColor:real;
begin
x1:=300;y1:=250;
// x2:=200;y2:=150;
r:=200;
StepColor:=150;
Step:=(255-StepColor)/r;
for i:=r downto 1 do
begin
StepColor:=StepColor+Step;
Form1.Canvas.Pen.Color:=rgb(Round(StepColor),0,0);
Form1.Canvas.Brush.Color:=rgb(Round(StepColor),0,0);
form1.Canvas.Ellipse(x1-i,y1-i,x1+i,y1+i);
end;
end;
end.