Question

Si je crée un nouveau formulaire Delphi, accrochez son événement OnResize et exécute l'application, onResize est tiré avant que la fenêtre ne soit affichée. Ce que je ne sais pas, c'est si cela se produira toujours, pour une fenêtre.

(Pour tous ceux qui connaissent l'API Windows, je l'ai tracé à l'appel Showwindow dans tCustomForm.ShowingChanged (Forms.Pas Line 5503 dans Delphi 2007), qui déclenche apparemment un WM_SIZE... Au moins, pour une nouvelle fenêtre sans autre ensemble de propriétés. Je ne l'ai pas vu documenter que Showwindow tire toujours WM_SIZE, donc je ne sais pas si je peux compter à ce sujet ou non.)

Alors: Puis-je compter sur un tform toujours Tirer onResize quand il est présenté pour la première fois? Ou y a-t-il des circonstances (peut-être si la fenêtre est non résistante, peut-être si la propriété de position a certaines valeurs, etc.) où onresize pourrait ne pas Le feu avant que la fenêtre ne soit présentée pour la première fois?

Était-ce utile?

La solution

Non, cet événement ne se déclenche pas toujours lorsque le formulaire se manifeste, selon des choses comme Borderstyle. Par exemple, il tire sur le démarrage pour BSSingle, mais pas pour BSDialog.

C'est facile à tester. Ajoutez simplement du code de journalisation à l'événement OnResize du formulaire principal, modifiez le Borderstyle et exécutez votre application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top