德尔福如何在输入新文本时使Tshape改变颜色

时间:2013-12-07 15:23:27

标签: delphi colors delphi-2010 shape

我是编程的新手,我不确定为什么这不起作用:

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或更高,我希望形状为绿色。感谢。

1 个答案:

答案 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;

如果编辑文本无法转换为整数,则会引发异常。

为避免这种情况,您可以使用StrToIntDefTryStrToInt