Я просматриваю две копии кода, и в одной у меня есть myForm.Hide, а в другой — myForm.Visible := False. Я не могу вспомнить, почему я изменил это, было ли это исправлением ошибки или есть ли вообще какая-то разница.
Delphi скрывает форму: есть ли разница между Form.Hide и Form.Visible:=False?
Ответы (2)
Для Hide
разницы нет. Код VCL:
procedure TCustomForm.Hide;
begin
Visible := False;
end;
Но Show
немного отличается:
procedure TCustomForm.Show;
begin
Visible := True;
BringToFront;
end;
Зависит от того, сколько лет вашему коду Delphi и как далеко он уходит. Form.Hide в одно время (Win95/2000) скрывает форму и ее значок на панели задач, а другое - нет. Конечно, были некоторые исправления и т. д., чтобы исправить проблемы с Delphi, и некоторые видеокарты / цветовые палитры требовали, чтобы вы подумали, как вы хотите скрыть формы. (чувак, я показываю свой возраст). Я видел код, который устанавливал бы форму Left в большое отрицательное число, просто чтобы скрыть форму с экрана из-за проблем с оборудованием (Delphi 1-3 действительно был чувствителен к оборудованию)
Кроме того, в Delphi 3/4 произошла утечка памяти при использовании минимизации вместо скрытия в приложениях MDI (поэтому мы использовали PAgecontrol с стыковкой форм поверх MDI Forms). Итак, если вы смотрите на очень старый код, то эти вещи имеют значение. Если вы компилируете на Delphi 6 или лучше, то разницы особой нет.