我在表單上設定了一個 Paint Box 組件,它的 OnPaint 事件如下所示:
procedure TForm1.PBPaint(Sender: TObject);
var
Bean: TBean;
begin
PB.Color := $008800;
Bean := Snake.Head;
while not (Bean = Snake.Tail) do
begin
PB.Canvas.FillRect(TRect.Create(Bean.x * 30, Bean.y * 30, Bean.x * 30 30, Bean.y * 30 30));
Bean := Bean.Next;
end;
PB.Canvas.FillRect(TRect.Create(Bean.x * 30, Bean.y * 30, Bean.x * 30 30, Bean.y * 30 30));
//PB.Color := $000055;
PB.Canvas.FillRect(TRect.Create(Fruit.x * 30, Fruit.y * 30,Fruit.x * 30 30,Fruit.y * 30 30));
end;
它應該將蛇部分渲染為綠色,將水果渲染為紅色。但是如果我在用水果填充部分之前改變顏色,那么一切都會變成紅色,并開始出現故障。
為什么會發生這種情況,有沒有辦法用不同的顏色填充 2 個區域而不會導致此問題?我相信我使用的是最新版本的免費 delphi,如果有幫助的話
uj5u.com熱心網友回復:
你應該設定畫布筆刷顏色,
PB.Canvas.Brush.Color := ... // Yes
不是控制元件的顏色:
PB.Color := ... // No
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315625.html
標籤:德尔福
