Будет ли форма Delphi всегда стрелять, когда она будет показана?

StackOverflow https://stackoverflow.com/questions/1239407

  •  11-09-2019
  •  | 
  •  

Вопрос

Если я создаю новую форму Delphi, зажмите его событие Oneresize и запустим приложение, он запускается до показа окна. Что я не знаю, так это то, всегда ли это произойдет, для любого окна.

(Для тех, кто знаком с API Windows, я проследил его до вызова ShowWindow в tcustomform.showingchanged (формы. WM_SIZE... по крайней мере, для нового окна без других свойств. Я не видел, чтобы это задокументировало, что ShowWindow всегда стреляет WM_SIZE, поэтому я не знаю, могу ли я рассчитывать на это или нет.)

Так: Могу ли я полагаться на TMARD всегда Увольнение Oneresize, когда он впервые показан? Или есть обстоятельства (возможно, если окно не разрешается, возможно, если свойство позиции имеет определенные значения и т. Д.), где может нет Огонь до того, как окно впервые показано?

Это было полезно?

Решение

Нет, это событие не всегда стреляет, когда видит форма, в зависимости от таких вещей, как Borderstyle. Например, он запускает запуск для BSSINGLE, но не для BSDialog.

Это легко проверить. Просто добавьте немного кода журнала в основное событие OnResize, измените BordersTyle и запустите ваше приложение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top