窗口上的所有东西都颜色渐变 怎样实现窗口上的所有东西都颜色渐变? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我倒是有个笨办法timer+图片切割(把你的按钮什么的都用图片代替,就象金山公司的很多软件的外观那样,有很多的skin)可能太苯了点! unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ActnMan, ActnColorMaps, ExtCtrls, Menus;type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; mnu_Horizontal: TMenuItem; mnu_Vertical: TMenuItem; N2: TMenuItem; mnu_StartColor: TMenuItem; mnu_EndColor: TMenuItem; ColorDialog1: TColorDialog; procedure Draw(StartColor:TColor;EndColor:TColor;Direction:Integer); procedure mnu_StartColorClick(Sender: TObject); procedure mnu_VerticalClick(Sender: TObject); procedure mnu_HorizontalClick(Sender: TObject); procedure mnu_EndColorClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormResize(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; StartColor:TColor; EndColor:TColor; Direction:Integer;implementation{$R *.DFM}procedure TForm1.Draw(StartColor:TColor;EndColor:TColor;Direction:Integer);var i:Integer; Dct:TRect; c1,c2,c3:byte;begin if Direction=0 then begin for i:=0 to self.Width-1 do begin c1:=GetRValue(StartColor)+Trunc(i*(GetRValue(EndColor)-GetRValue(StartColor))/(self.Width-1)); c2:=GetGValue(StartColor)+Trunc(i*(GetGValue(EndColor)-GetGValue(StartColor))/(self.Width-1)); c3:=GetBValue(StartColor)+Trunc(i*(GetBValue(EndColor)-GetBValue(StartColor))/(self.Width-1)); Canvas.Brush.Color:=RGB(c1,c2,c3); //每次画矩形的画刷颜色 Dct:=Rect(i,0,i+1,self.Height); //每次刷绘的矩形区域 Canvas.FillRect(Dct); //填充颜色 end; end else begin for i:=0 to self.Height-1 do begin c1:=GetRValue(StartColor)+Trunc(i*(GetRValue(EndColor)-GetRValue(StartColor))/(self.Height-1)); c2:=GetGValue(StartColor)+Trunc(i*(GetGValue(EndColor)-GetGValue(StartColor))/(self.Height-1)); c3:=GetBValue(StartColor)+Trunc(i*(GetBValue(EndColor)-GetBValue(StartColor))/(self.Height-1)); Canvas.Brush.Color:=RGB(c1,c2,c3); //每次画矩形的画刷颜色 Dct:=Rect(0,i,self.Width,i+1); //每次刷绘的矩形区域 Canvas.FillRect(Dct); //填充颜色 end; end;end;procedure TForm1.mnu_StartColorClick(Sender: TObject);begin if ColorDialog1.Execute then StartColor:=ColorDialog1.Color; Draw(StartColor,EndColor,Direction);end;procedure TForm1.mnu_VerticalClick(Sender: TObject);begin Direction:=1; Draw(StartColor,EndColor,Direction);end;procedure TForm1.mnu_HorizontalClick(Sender: TObject);begin Direction:=0; Draw(StartColor,EndColor,Direction);end;procedure TForm1.mnu_EndColorClick(Sender: TObject);begin if ColorDialog1.Execute then EndColor:=ColorDialog1.Color; Draw(StartColor,EndColor,Direction);end;procedure TForm1.FormCreate(Sender: TObject);begin StartColor:=RGB(0,0,0); EndColor:=RGB(255,255,255); Direction:=0;end;procedure TForm1.FormPaint(Sender: TObject);begin Draw(StartColor,EndColor,Direction);end;procedure TForm1.FormResize(Sender: TObject);begin self.Canvas.Refresh; Draw(StartColor,EndColor,Direction);end;end.此為窗躰背景色 漸變色 做叔叔了,麻烦大家帮我小侄女起个名字:) 如何提取字符串中的部分字符串,例如提取'33 23 43'中的 '33' ,'23' ,'43' 。 两个简单问题:) 客户端运行,连SQL数据库时出错! TMessage这个类中的字段意思? Access用法 高分求助,有关动态报表的 clientsocket 与 serversocket 传送超长字符的问题 idftp 如何指定下载分块文件,就是多线程,get中没这个参数啊,(高人来呀) 怎样实现动态生成N组数据在左边框,可以批量选择其中部分到右边的功能 我的目标是要做csdn史上最努力的菜鸟;^_^ Socket异常的问题
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ActnMan, ActnColorMaps, ExtCtrls, Menus;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
mnu_Horizontal: TMenuItem;
mnu_Vertical: TMenuItem;
N2: TMenuItem;
mnu_StartColor: TMenuItem;
mnu_EndColor: TMenuItem;
ColorDialog1: TColorDialog;
procedure Draw(StartColor:TColor;EndColor:TColor;Direction:Integer);
procedure mnu_StartColorClick(Sender: TObject);
procedure mnu_VerticalClick(Sender: TObject);
procedure mnu_HorizontalClick(Sender: TObject);
procedure mnu_EndColorClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormResize(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
StartColor:TColor;
EndColor:TColor;
Direction:Integer;
implementation{$R *.DFM}procedure TForm1.Draw(StartColor:TColor;EndColor:TColor;Direction:Integer);
var
i:Integer;
Dct:TRect;
c1,c2,c3:byte;
begin
if Direction=0 then
begin
for i:=0 to self.Width-1 do
begin
c1:=GetRValue(StartColor)+Trunc(i*(GetRValue(EndColor)-GetRValue(StartColor))/(self.Width-1));
c2:=GetGValue(StartColor)+Trunc(i*(GetGValue(EndColor)-GetGValue(StartColor))/(self.Width-1));
c3:=GetBValue(StartColor)+Trunc(i*(GetBValue(EndColor)-GetBValue(StartColor))/(self.Width-1));
Canvas.Brush.Color:=RGB(c1,c2,c3);
//每次画矩形的画刷颜色
Dct:=Rect(i,0,i+1,self.Height);
//每次刷绘的矩形区域
Canvas.FillRect(Dct);
//填充颜色
end;
end
else
begin
for i:=0 to self.Height-1 do
begin
c1:=GetRValue(StartColor)+Trunc(i*(GetRValue(EndColor)-GetRValue(StartColor))/(self.Height-1));
c2:=GetGValue(StartColor)+Trunc(i*(GetGValue(EndColor)-GetGValue(StartColor))/(self.Height-1));
c3:=GetBValue(StartColor)+Trunc(i*(GetBValue(EndColor)-GetBValue(StartColor))/(self.Height-1));
Canvas.Brush.Color:=RGB(c1,c2,c3);
//每次画矩形的画刷颜色
Dct:=Rect(0,i,self.Width,i+1);
//每次刷绘的矩形区域
Canvas.FillRect(Dct);
//填充颜色
end;
end;
end;procedure TForm1.mnu_StartColorClick(Sender: TObject);
begin
if ColorDialog1.Execute then
StartColor:=ColorDialog1.Color;
Draw(StartColor,EndColor,Direction);
end;procedure TForm1.mnu_VerticalClick(Sender: TObject);
begin
Direction:=1;
Draw(StartColor,EndColor,Direction);
end;procedure TForm1.mnu_HorizontalClick(Sender: TObject);
begin
Direction:=0;
Draw(StartColor,EndColor,Direction);
end;procedure TForm1.mnu_EndColorClick(Sender: TObject);
begin
if ColorDialog1.Execute then
EndColor:=ColorDialog1.Color;
Draw(StartColor,EndColor,Direction);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
StartColor:=RGB(0,0,0);
EndColor:=RGB(255,255,255);
Direction:=0;
end;procedure TForm1.FormPaint(Sender: TObject);
begin
Draw(StartColor,EndColor,Direction);
end;procedure TForm1.FormResize(Sender: TObject);
begin
self.Canvas.Refresh;
Draw(StartColor,EndColor,Direction);
end;end.
此為窗躰背景色 漸變色