创建五彩缤纷的窗口

 

    你想创建一个与众不同的窗口背景吗?Delphi 中有很多控件具有Canvas(画布)属性,可在其上作画或显示图形,帮你实现这种功能。
  设计思想
  利用窗体Form 支持Can—vnvas 属性的特点,可在窗口画上随机的颜色像素点,并通过灵活地控制颜色得到满意的窗口背景。比如将窗口变成一张漂亮的地毯或者一块绿油油的草坪。
  如果颜色的变化与窗口坐标变化相对应,其效果更是别具特色。
  源程序
unit dedt ;
interface
uses
Windows ,Messages ,SysUtils ,Classes ,
Graphics ,Controls ,Forms ,Dialogs ,StdCtrls ;
type
TForm1=class(TForm)
Button1:TButton ;
Button2:TButton ;
Button3:TButton ;
OpenDialog1:TOpenDialog ;
procedure Button1Click(Sender :TObject);
procedure Button2Click(Sender :TObject);
procedure FormActivate(Sender :TObject);
procedure Button3Click(Sender :TObject);
private
{Private declarations }public {Public declarations }
end ;
var Form1:TForm1;
i ,j :integer ;
bitmap :Tbitmap ;
rect1:Trect ;
i mplementation {$R *.DFM}
//准备图像
procedure TForm1.FormActivate(Sender :TObject);
begin
bitmap :=tbitmap .create ;
OpenDialog1.filter :='Bitmapfile(*.bmp)|*.bmp';
if OpenDialog1.Execute then
bitmap .loadfromfile(OpenDialog1.filename);
Form1.Canvas .Draw(0,0,Bitmap);
end ;//绿色背景
procedure TForm1.Button1Click(Sender :TObject);
begin for j :=0to form1.height do
for i :=0to form1.width do
form1.Canvas .Pixels[i ,j]:=$100*Random(256);
end ;//平滑前景
procedure TForm1.Button2Click
(Sender :TObject);
begin for j :=0to form1.height do
for i :=0to form1.width do
form1.Canvas .Pixels[i ,j]:=(($100*j)div
form1.height)*Random(256);
end ;//图像背景变化
procedure TForm1.Button3Click(Sender :TObject);
begin for j :=0to bitmap .height div 2do
for i :=0to bitmap .width div 2do
form1.Canvas .Pixels[2*i ,2*j]:=((256*j *2)div
bitmap .height)*256;
end ;end .运行程序,通过对话框选择一个BMP 位图文件,按下按钮3则图像由上至下逐渐呈绿色,按下按钮1和按钮2则分别形成不同风格的窗口背景。
  (辽宁省铁岭市气象局李莹112000)