首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果shape1.brush.color:=clred和shape2.brush.color:=clred能做点什么呢?

如果shape1.brush.color:=clred和shape2.brush.color:=clred能做点什么呢?
EN

Stack Overflow用户
提问于 2014-02-03 23:45:03
回答 2查看 1.5K关注 0票数 0

当我使用这两种代码运行应用程序时,会显示相同的错误:

运算符不适用于此操作数类型。

代码语言:javascript
复制
procedure TForm1.Button4Click(Sender: TObject);
begin
  If (shape1.Brush.Color:=clblue and shape2.Brush.Color:=clblue) then
  begin
    showMessage('error');
  end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  If (shape1.Brush.Color:=clblue) and (shape2.Brush.Color:=clblue) then
  begin
    showMessage('error');
  end;
EN

回答 2

Stack Overflow用户

发布于 2014-02-04 00:19:32

这里有两个问题。

首先,正在使用的操作符:=是赋值,而不是等式检查。为此,你想要=

第二,由于andor运算符的优先级问题,同一表达式中的多个比较需要在每个单独的比较中加上括号。你想要的是:

代码语言:javascript
复制
if (shape1.Brush.Color = clblue) and (shape2.Brush.Color = clblue) then
begin
  showMessage('error');
end;
票数 6
EN

Stack Overflow用户

发布于 2014-02-04 00:11:47

你应该重读你的德尔菲手册!

等式的比较是一个简单的=,而:=用于赋值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21540187

复制
相关文章

相似问题

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