界面色彩渐变效果是通过用渐变的画刷刷绘依次相邻的矩形块实现的。下面列举实例说明: 1.新建一个表单,假设其Width为500,设置一个按钮Button1,按此按钮将把表单置为由左向右由黄变白的渐变效果。 2.Button1按钮的代码如下: procedure TForm1.Button1Click(Sender: TObject); var i,j:Integer; Dct:TRect; begin j:=Form1.height; //获得表单高度 for i:=0 to 255 do //此处设置RGB()中一个颜色值 begin Canvas.Brush.Color:=RGB(255,255,i); //每次画矩形的画刷颜色 Dct:=Rect(i*2,0,(i+1)*2,j); //每次刷绘的矩形区域 Canvas.FillRect(Dct); //填充颜色 end; end;
没有这样的吧,变也得变颜色值呀 procedure TForm1.Button1Click(Sender: TObject); var i,j:Integer; begin color1:=**; color2:=***; //获得表单高度 for i:=0 to j do //此处设置RGB()中一个颜色值 begin Canvas.Brush.Color:=int((color2*i+color1*(j-i))/j); //每次画矩形的画刷颜色 moveto( ) lineto() 你自己算一下 end; end;
1.新建一个表单,假设其Width为500,设置一个按钮Button1,按此按钮将把表单置为由左向右由黄变白的渐变效果。
2.Button1按钮的代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:Integer;
Dct:TRect;
begin
j:=Form1.height;
//获得表单高度
for i:=0 to 255 do
//此处设置RGB()中一个颜色值
begin
Canvas.Brush.Color:=RGB(255,255,i);
//每次画矩形的画刷颜色
Dct:=Rect(i*2,0,(i+1)*2,j);
//每次刷绘的矩形区域 Canvas.FillRect(Dct);
//填充颜色
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,j:Integer;
begin
color1:=**;
color2:=***;
//获得表单高度
for i:=0 to j do
//此处设置RGB()中一个颜色值
begin
Canvas.Brush.Color:=int((color2*i+color1*(j-i))/j);
//每次画矩形的画刷颜色
moveto( )
lineto() 你自己算一下
end;
end;
int((color2*i+color1*(j-i))/j);
你可以从一边到另一边,(line就行)也可以从中间到外边(fillrect)