Delphi скрывает форму: есть ли разница между Form.Hide и Form.Visible: = False? - PullRequest
2 голосов
/ 25 марта 2011

Я просматриваю две копии кода, и в одной из них есть myForm.Hide, а в другой - myForm.Visible: = False. Я не могу вспомнить, почему я это изменил, если одна из них была исправлена ​​ошибка или есть какая-либо разница.

Ответы [ 2 ]

13 голосов
/ 25 марта 2011

Нет разницы для Hide.Код VCL:

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

Но Show немного отличается:

procedure TCustomForm.Show;
begin
  Visible := True;
  BringToFront;
end;
4 голосов
/ 25 марта 2011

Зависит от того, сколько лет вашему Delphi-коду и как далеко он зашёл.Form.Hide в одно время (Win95 / 2000) скрывал форму И ее значок на панели задач, а другой - нет.Конечно, для исправления проблем с Delphi были некоторые исправления и т. Д., А некоторые видеокарты / цветовые палитры требовали от вас подумать о том, как вы хотите скрыть формы.(мужчина, я показываю свой возраст).Я видел код, который устанавливал бы форму Left на большое отрицательное число, просто чтобы скрыть форму за пределами экрана, из-за проблем с оборудованием (Delphi 1-3 был действительно чувствителен к аппаратному обеспечению)

Также вокруг Delphi 3/ 4 произошла утечка памяти при использовании минимизации вместо скрытия в приложениях MDI (поэтому мы использовали PAgecontrol с стыковкой форм поверх форм MDI).Итак, если вы смотрите на очень старый код, то эти вещи имеют значение.Если вы компилируете на Delphi 6 или лучше, то на самом деле нет никакой разницы.

...