我是编程的新手,我不确定为什么这不起作用:
procedure TGIFtest.Edit1Change(Sender: TObject);
var
Text : integer;
begin
if text < 5 then
shape1.brush.Color := clred
else
if text >= 5 then
shape1.brush.Color := clgreen;
end;
如果在编辑中输入的数字小于5,我希望形状为红色;如果输入数字5或更高,我希望形状为绿色。感谢。
答案 0 :(得分:4)
变量Text
未初始化,因此您将拥有随机值。
如果您想要使用编辑文本(字符串)中的整数值,则必须获取此文本并将其转换为整数值。
procedure TGIFtest.Edit1Change(Sender: TObject);
var
Text : integer;
begin
Text := StrToInt( Edit1.Text );
if text < 5 then
shape1.brush.Color := clred
else
if text >= 5 then
shape1.brush.Color := clgreen;
end;
如果编辑文本无法转换为整数,则会引发异常。
为避免这种情况,您可以使用StrToIntDef
或TryStrToInt