我想要一个按钮来更改标签,使其在可见和单击时不可见。我尝试了以下代码,但它不起作用:
Var:
Hidden : Boolean;
Begin
If Hidden = True
Then
Begin
Label6.Visible := True;
Hidden := False;
End;
If Hidden = False
Then
Begin
Label6.Visible := False;
Hidden := True;
End;
它编译,但不起作用!
答案 0 :(得分:3)
这样做:
Label6.Visible := not Label6.Visible;
这就是你需要的所有代码。
此外,如果您要在代码中处理标签,请给它一个正确的识别名称(如lblCountOfMatches或其他东西)。
最后,你的代码无效的原因是Hidden永远不会被设置。声明时默认为false。如果你想使用你现在拥有的代码(这个代码太冗长),你必须发出:
Hidden := Label6.Visible
在检查隐藏之前。
答案 1 :(得分:0)
问题是双重的:您声明了一个局部变量,然后您尝试进行比较,即使处理了第一个变量,也执行两个比较。
您也不需要布尔值:您可以检查它是否当前可见
你应该做的是这样的事情:
begin
if Label6.Visible then
Label6.Visible := False
else
Label6.Visible := True;
end;
或者甚至更简单:
begin
Label6.Visible := not Label6.Visible;
end;
答案 2 :(得分:0)
我有类似的问题。 我注意到这是因为我在Form不可见时更改了控件的可见性状态(Tedit)。
所以这没效果: Form2.Edit1.Visible:= TRUE; Form2.Visible:= TRUE;
这有效: Form2.Visible:= TRUE; Form2.Edit1.Visible:= TRUE;
首先使表格可见,然后是控件。
在找到这个之前我尝试了很多解决方案,但都没有效果。 我正在使用Delphi 2007.