1

我想要一个按钮来更改单击时可见和不可见之间的标签。我尝试了以下代码,但它不起作用:

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;

它编译,但不起作用!

4

3 回答 3

3

做这个:

 Label6.Visible := not Label6.Visible;

这就是您需要的所有代码。

此外,如果您要在代码中处理标签,请给它一个正确的识别名称(如 lblCountOfMatches 或其他东西)。

最后,您的代码不起作用的原因是 Hidden 从未设置。声明时默认为 false。如果您想使用您现在拥有的代码(这太冗长),您必须发出:

 Hidden := Label6.Visible

在检查隐藏之前。

于 2010-03-27T18:59:02.560 回答
0

问题是双重的:您声明了一个局部变量,然后您尝试比较并执行两个比较,即使第一个比较已处理。

您也不需要布尔值:您只需检查它当前是否可见

因此,您应该做的是这样的:

begin 
  if Label6.Visible then  
    Label6.Visible := False
  else
    Label6.Visible := True; 
end;

或者更简单的:

begin
  Label6.Visible := not Label6.Visible;
end;
于 2010-03-27T19:00:07.600 回答
0

我有一个类似的问题。我注意到这是因为我在窗体不可见时更改了控件(Tedit)的可见性状态。

所以这不起作用: Form2.Edit1.Visible:=True; Form2.Visible:=真;

这有效:Form2.Visible:=True; Form2.Edit1.Visible:=True;

所以首先让表单可见,然后是控件。

在找到这个之前,我尝试了很多解决方案,但没有一个奏效。我正在使用德尔福 2007。

于 2016-03-08T12:36:22.593 回答