4

コードの 2 つのコピーを調べています。1 つは myForm.Hide で、もう 1 つは myForm.Visible := False です。なぜこれを変更したのか、バグ修正だったのか、それとも違いがあるのか​​ まったく思い出せません。

4

2 に答える 2

15

に違いはありませんHide。VCL コードは次のとおりです。

procedure TCustomForm.Hide;
begin
  Visible := False;
end;

しかしShow、少し異なります:

procedure TCustomForm.Show;
begin
  Visible := True;
  BringToFront;
end;
于 2011-03-25T18:45:52.230 に答える
5

Delphi コードの古さ、およびそれがどれだけ遡るかによって異なります。Form.Hide at a time (Win95/2000) は、フォームとそのタスクバー アイコンを非表示にしますが、もう一方は非表示にします。もちろん、Delphi の問題を修正するためのパッチなどがいくつかあり、特定のビデオ カードやカラー パレットでは、フォームを非表示にする方法を検討する必要がありました。(私は私の年齢を示しています)。ハードウェアの問題の原因でフォームを画面から隠すためだけにフォーム Left を大きな負の数に設定するコードを見てきました (Delphi 1-3 は本当にハードウェアに敏感でした)。

また、Delphi 3/4 のあたりで、MDI アプリケーションで非表示の代わりに最小化を使用すると、メモリ リークが発生しました (そのため、MDI フォーム上でフォームをドッキングする PAgecontrol を使用しました)。したがって、非常に古いコードを見ている場合、それらは重要です。Delphi 6 以降でコンパイルしている場合、違いはありません。

于 2011-03-25T18:51:19.480 に答える