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,而非直接的布尔值。
修复步骤
修正条件判断逻辑
将if PlayerColorDialog2.Execute then改为对比模态结果的形式,明确判断用户是否点击了确定按钮:if PlayerColorDialog2.Execute = mrOk then修正变量赋值笔误(可选但重要)
你的代码中,第二个颜色选择方法错误地将玩家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
相关产品推荐
相关产品推荐

