需要写一个动态霓虹灯程序,主要结构和程序如下:
创建VCL工程,控件中直接选取一个label 和 一个Timer控件。
由于不需要框架,所以直接设置Form属性中BorderStyle := bsNone;取消边框。
双击创建timer对应相应:Timer1Timer,这里可以设置他的间隔调用时间。
在里面直接设置Form和Label 。 font的AutoSize := True就可以自动调整大小。
在里面做case操作:然后更改Label。color和Label。Font。Color,就可以随机产生颜色;Case中的条件直接使用Random(10),在条件中根据0-10去对应更改颜色就OK;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Font.Size := Random(50);
Form1.Left := Random(800);
Form1.Top := Random(600);
case (Random(8)) of
0: Label1.Color := clYellow;
1: Label1.Color := clGreen;
2: Label1.Color := clRed;
3: Label1.Color := clGray;
4: Label1.Color := clWhite;
else
Label1.Color := clRed;
end;
case (Random(8)) of
0: Label1.Font.Color := clYellow;
1: Label1.Font.Color := clGreen;
2: Label1.Font.Color := clRed;
3: Label1.Font.Color := clGray;
4: Label1.Font.Color := clWhite;
end;
end;
代码如上;
但是结果不是很理想,Label的backgroud怎么都不能改变颜色。后来发现一个属性需要我们去更改TransparentColor需要更改为False。否则Label 的颜色会一直跟随Form的颜色。
结果如下:一切都正常了!