Bonjour,
oui, je sais, le titre n'est pas très clair et explicite, mais j'ai essayé de faire court et comme je ne vois pas du tout où est le problème (à part dans les tréfonds de Lazarus...), je ne pouvais pas mettre 25 lignes de texte pour le titre
Alors voilà (et ça n'a rien à voir avec mon problème de SetFocus dont on a causé hier) :
soit un TPageControl contenant 4 TTabSheets, et dont le 2e contient un TGroupBox contenant d'autres composants.
Ce TGroupBox sera affiché ou pas en fonction d'un booléen positionné dans FormActivate. Cela fonctionne parfaitement bien sur le projet de test sans TPageControl, c'est quand je regroupe plusieurs maquettes (une par TTabSheet) que ça coince, et ça coince également sans aucun code : juste pour confirmer, j'ai fait un projet de test qui n'a pas de code à part la détection du booléen :
Maintenant soyez bien assis sinon vous risquez de tomber par terre (comme moi hier soir à pas d'heure...) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TForm1.FormActivate(Sender: TObject); begin FbTest := False; if FileExists(ExtractFilePath(Application.ExeName)+'test') then FbTest := True; if not FbTest then GroupBox1.Visible := False; end;
ce qui m'intéresse, c'est la condition False du booléen, et donc le gb caché.
- si je compile pour l'onglet contenant le gb, pas de problème ;
- si je compile pour un autre onglet, à l'exécution quand je passe sur cet onglet, ben le gb est visible !
Mais pas tous ses composants ! ! !
Je ne vois aucune solution à ce merdier, mis à part compiler pour cet onglet et dans le FormActivate, rajouter PageControl1.ActivePage := TabSheet1;.
Et là je retrouve un fonctionnement correct.
Ce post n'est pas une demande d'aide (sauf s'il y a un bug connu que j'ignore), plutôt un coup de gueule face à un comportement farfelu qui me fait me dégoûter, parfois, de l'informatique.
Partager