首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi颜料盒在颜色改变后出现故障

Delphi颜料盒在颜色改变后出现故障
EN

Stack Overflow用户
提问于 2021-09-22 15:43:14
回答 1查看 89关注 0票数 0

我在窗体上设置了一个颜料盒组件,其OnPaint事件如下所示:

代码语言:javascript
复制
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;

它应该将蛇的部分渲染为绿色,将水果渲染为红色。但是如果我在用水果填充之前改变颜色,那么所有的东西都会变成红色,并开始出现毛刺。

为什么会发生这种情况,有没有一种方法可以让我用不同的颜色填充两个区域,而不会导致这个问题?我相信我使用的是最新版本的免费delphi,如果这有帮助的话

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-22 16:13:36

您应该设置画布笔刷颜色,

代码语言:javascript
复制
PB.Canvas.Brush.Color := ...              // Yes

不是控件的颜色:

代码语言:javascript
复制
PB.Color := ...                           // No
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69287421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档