Pea*_*nut -1 delphi if-statement function
只是一个快速的,忙于一个任务...有人可以检查我的逻辑在这个功能上是否正确,因为它似乎不起作用,编译时我没有收到任何错误
我把这个函数称为:
lblcolor.color := colorChooser(intVariable);
Run Code Online (Sandbox Code Playgroud)
该功能必须使标签为绿色,红色,黄色或蓝色,如下面的代码所示,但它似乎不起作用.
或者你们认为我必须使用这个案例陈述.
function ColorChooser(difference : integer): TColor;
begin
if difference = 0 then
begin
Result := clGreen;
end
else if (difference >= 1) and (difference <= 3) then
begin
Result := clYellow;
end
else if (difference >= 4)
and (difference <= 8) then
begin
Result := clRed;
end
else
Result := clBlue;
end;
Run Code Online (Sandbox Code Playgroud)
这里有一个主要的格式问题.:-)问题是标签默认采用其父颜色,并且也是透明的(意味着它的背景不可见).在设计时或在运行时的事件中,将标签的Transparent属性设置为FalseObject Inspector FormShow.
现在,让我们清理你的代码:
function ColorChooser(difference : integer): TColor;
begin
Result := clBlue;
if difference = 0 then
Result := clGreen
else if (difference >= 1) and (difference <= 3) then
Result := clYellow
else if (difference >= 4) and (difference <= 8) then
Result := clRed;
end;
Run Code Online (Sandbox Code Playgroud)
测试它:
procedure TForm1.Button1Click(Sender: TObject);
begin
lblColor.Color := ColorChooser(Random(8));
end;
Run Code Online (Sandbox Code Playgroud)
现在,写一个更清洁的方式:
function ColorChooser(difference : integer): TColor;
begin
case difference of
0: Result := clGreen;
1..3: Result := clYellow;
4..8: Result := clRed
else
Result := clBlue;
end;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |