delphi label 背景顏色設定!
阿新 • • 發佈:2019-02-04
需要寫一個動態霓虹燈程式,主要結構和程式如下:
建立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的顏色。
結果如下:一切都正常了!