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

Hidden を検査する前に。

于 2010-03-27T18:59:02.560 に答える
0

同様の問題がありました。フォームがまだ表示されていないときにコントロール(Tedit)の可視性状態を変更したことが原因であることに気付きました。

したがって、これは機能しませんでした: Form2.Edit1.Visible:=True; Form2.Visible:=True;

これはうまくいきました: Form2.Visible:=True; Form2.Edit1.Visible:=True;

したがって、最初にフォームを表示し、次にコントロールを表示します。

これを見つける前に、私は多くの解決策を試しましたが、どれもうまくいきませんでした。Delphi 2007 を使用しています。

于 2016-03-08T12:36:22.593 に答える
0

問題は 2 つあります。ローカル変数を宣言してから比較を試み、最初の比較が処理されたとしても両方の比較を実行します。

ブール値も必要ありません。現在表示されているかどうかを確認するだけです

したがって、あなたがすべきことは次のようなものです:

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 に答える