(re-)Bonjour,

la semaine commence mal :

Nom : pnlcontainer_wrongheight.png
Affichages : 203
Taille : 30,2 Ko

à gauche le mode design où l'on voit bien en gris moyen un TPanel classique posé sur le gris clair du fond de fiche (les deux bandes clCream sont des TPanels, respectivement alTop et alBottom, r-à-s) ;
au milieu en exécution le TPanel est passé Align:=alClient, tel que le montre le code à droite.

Mais le gag c'est les 2 TEdit en bas qui affichent la hauteur du TPanel avant puis après l'alignement et on voit bien que si le TPanel a bien graphiquement réagi à la demande d'alignement, le second TEdit affiche une valeur fausse, malgré deux demandes de mise à jour.
Une autre à la place des deux, Form1.Update;, a le même comportement inefficace.

Que faire pour qu'un code aussi simple daigne tomber en marche ?
Parce que j'ai besoin de la vraie hauteur du TPanel pour y poser ensuite des choses et les y aligner correctement.

Question subsidiaire : comment un comportement aussi farfelu est-il possible ?

Le gag, c'est que si je rajoute ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
procedure TForm1.FormActivate(Sender: TObject);
begin
  Caption:=inttostr(pnlContainer.Height);
la valeur est bonne !

Mais ça ne m'arrange pas du tout de passer la création des composants dans FormActivate…
Une idée ?
Merci,