Почему TForm.Handle является геттером вместо поля?

Недавно я отлаживал сложную ошибку. Это было вызвано доступом к несуществующимForm.Handle (одета указатель). Ошибка обнаружилась довольно неожиданно для меня - доступ к формамHandle вызвал изменение размеров и перерисовку.

Я бы ожидал доступаForm.Handle по указателю мусора просто вернул бы мусор THandle. Ожидая, чтоHandle создается один раз при создании формы и остается неизменным до тех пор, пока форма не будет уничтожена.

Вопрос

Почему это так, чтоTForm.Handle не поле, которое инициализируется при создании формы и доступно через

property Handle: Integer read FHandle;

, но добытчик

property Handle: Integer read GetHandle;

который создает дескриптор и даже окно (CreateWnd) при первом доступе?

Ответы на вопрос(1)

Ваш ответ на вопрос