You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi报错:Expression type must be BOOLEAN,求解决方案

Delphi修复“Expression type must be BOOLEAN”错误方案

问题原因

你遇到的Expression type must be BOOLEAN错误,是因为PlayerColorDialog2.Execute的返回值类型不符合if语句的布尔值要求。在Delphi中,标准对话框的Execute方法返回的是模态结果常量(如mrOk、mrCancel),类型为Integer,而非直接的布尔值。

修复步骤

  1. 修正条件判断逻辑
    将if PlayerColorDialog2.Execute then改为对比模态结果的形式,明确判断用户是否点击了确定按钮:

    if PlayerColorDialog2.Execute = mrOk then
    
  2. 修正变量赋值笔误(可选但重要)
    你的代码中,第二个颜色选择方法错误地将玩家2的颜色赋值给了FSpieler1farbe,会导致玩家1的颜色被覆盖,应改为FSpieler2farbe。

修改后的完整代码

{=================================================================================}
procedure TFormGameSettings.pnlPlayerColor1Click(Sender: TObject);
begin
  if PlayerColorDialog1.Execute = mrOk then // 统一修正判断逻辑,避免后续同类问题
  begin
    FSpieler1farbe := PlayerColorDialog1.Color;
    PanelColorChange;
  end;
end;

{=================================================================================}
procedure TFormGameSettings.pnlPlayerColor2Click(Sender: TObject);
begin
   if PlayerColorDialog2.Execute = mrOk then
  begin
    FSpieler2farbe := PlayerColorDialog2.Color;
    PanelColorChange;
  end;
end;
{=================================================================================}

内容的提问来源于stack exchange,提问作者Orsok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:50:36