문제

새로운 델파이 양식을 만들고, onresize 이벤트를 연결하고 앱을 실행하면, 창이 표시되기 전에 onresize가 발사됩니다. 내가 모르는 것은 이것이 어떤 창에 항상 일어날 지 여부입니다.

(Windows API에 익숙한 사람은 TCUSTOMFORM.ShowingChanged의 ShowWindow 호출 (Delphi 2007의 Pas Line 5503)으로 추적했습니다. WM_SIZE... 적어도 다른 속성이 설정되지 않은 새 창의 경우. 나는 쇼 윈도가 항상 화재를 당한다는 것을 기록한 것을 보지 못했습니다 WM_SIZE, 그래서 나는 이것을 믿을 수 있는지 여부를 모른다.)

그래서: tform에 의존 할 수 있습니까? 언제나 처음으로 표시되면 발사 onresize? 또는 상황이 있습니까 (창이 재구성 할 수없는 경우, 위치 특성에 특정 값이있는 경우) ~ 아니다 창문이 처음 표시되기 전에 화재?

도움이 되었습니까?

해결책

아니요,이 이벤트는 Borderstyle과 같은 것들에 따라 양식이 표시 될 때 항상 발사되지는 않습니다. 예를 들어, BSSingle의 스타트 업에서 발사되지만 BSDialog에는 해당되지 않습니다.

테스트하기 쉽습니다. 메인 양식의 OnResize 이벤트에 로깅 코드를 추가하고 Borderstyle을 변경하고 앱을 실행하기 만하면됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top