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

问题描述 投票:1回答:1

我不熟悉编程,我不确定为什么这不会工作:

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或更高,则为绿色。谢谢。

delphi colors delphi-2010 shape
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.