注意:不要编辑此代码的布局!(见下面的答案)
procedure TForm1.ReadCardTimer(Sender: TObject);
begin
ReadCard2(StrToInt(PChar('$' + Form2.Edit1.Text)),1);
ReadCard2(StrToInt(PChar('$' + Form2.Edit3.Text)),2);
ReadCard2(StrToInt(PChar('$' + Form2.Edit2.Text)),3);
ReadCard2(StrToInt(PChar('$' + Form2.Edit4.Text)),4);
ReadCard2(StrToInt(PChar('$' + Form2.Edit5.Text)),5);
ReadCard2(StrToInt(PChar('$' + Form2.Edit6.Text)),6);
ReadCard2(StrToInt(PChar('$' + Form2.Edit7.Text)),7);
ReadCard2(StrToInt(PChar('$' + Form2.Edit8.Text)),8);
ReadCard2(StrToInt(PChar('$' + Form2.Edit9.Text)),9);
ReadCard2(StrToInt(PChar('$' + Form2.Edit10.Text)),10);
ReadCard2(StrToInt(PChar('$' + Form2.Edit11.Text)),11);
ReadCard2(StrToInt(PChar('$' + Form2.Edit12.Text)),12);
ReadCard2(StrToInt(PChar('$' + Form2.Edit13.Text)),13);
ReadCard2(StrToInt(PChar('$' + Form2.Edit14.Text)),14);
if NewValue = 0 then
Image1.Hide;
Image2.Hide;
if NewValue > 0 then
Image1.Show;
Image2.Show;
UpdateCardImage(NewValue,NewValue2,'Image1');
UpdateCardImage(NewValue3,NewValue4,'Image2');
UpdateCardImage(NewValue5,NewValue6,'Image3');
UpdateCardImage(NewValue7,NewValue8,'Image4');
UpdateCardImage(NewValue9,NewValue10,'Image5');
UpdateCardImage(NewValue11,NewValue12,'Image6');
UpdateCardImage(NewValue13,NewValue14,'Image7');
end;
Run Code Online (Sandbox Code Playgroud)
由于某种原因,第二张图片我试图隐藏......不会隐藏......我可以注释掉第一张图片而第二张图片会隐藏在这里发生什么?
Dav*_*nan 14
我缩进了代码以反映if语句的含义.希望现在可以清楚地知道发生了什么.我建议您自己开始缩进代码!
procedure TForm1.ReadCardTimer(Sender: TObject);
begin
ReadCard2(StrToInt(PChar('$' + Form2.Edit1.Text)),1);
//etc.
if NewValue = 0 then
Image1.Hide;
Image2.Hide;
if NewValue > 0 then
Image1.Show;
Image2.Show;
UpdateCardImage(NewValue,NewValue2,'Image1');
//etc.
end;
Run Code Online (Sandbox Code Playgroud)
大概你的意思是:
if NewValue = 0 then
begin
Image1.Hide;
Image2.Hide;
end;
if NewValue > 0 then
begin
Image1.Show;
Image2.Show;
end;
Run Code Online (Sandbox Code Playgroud)
但是,假设这NewValue绝不是负面的,那么我会使用Visible属性为Show/ 的简写Hide:
Image1.Visible := NewValue>0;
Image2.Visible := Image1.Visible;
Run Code Online (Sandbox Code Playgroud)
这种声明性方法通常会产生更清晰,更具表现力的代码.此外,它允许您简明扼要地表达这些控件的可见性紧密相关的事实.
你需要使用
begin
Image1.Show;
Image2.Show;
end;
Run Code Online (Sandbox Code Playgroud)
begin并end告诉编译器语句属于一起.在您的代码中,第二个始终显示,而第一个仅在if表达式返回时显示True.
| 归档时间: |
|
| 查看次数: |
705 次 |
| 最近记录: |