Bonsoir,
Question stupide, direz-vous ?
Au départ j'étais parti sur une histoire classique de contrôle.Left := (parent.Width-contrôle.Width) div 2; et pareil pour le Top et la hauteur, mais j'avais des effets de bord trop longs à expliquer ici, alors j'ai un peu googlé et bien mal m'en a pris, parce qu'au plus je lis au plus je m'enfonce...
Pour la faire courte, je me suis retrouvé sur le wiki, où j'ai pu voir la mise en application de choses que je n'utilise jamais, l'aide étant tellement vide sur ce sujet...
Bref, j'ai trouvé ça (je n'ai mis que les parties en rapport avec mon souci) :
Lisant "This is used in table layouts" j'ai supposé qu'il pouvait être question de grilles, j'ai donc dessiné une fiche avec une DrawGrid, j'ai mis les options d'alignement de la cellule (il n'y en a qu'une) à ccaCenter et pour le panneau que j'espère aligner, tous les Anchors (akTop, etc.) à False comme expliqué + ou - dans le wiki,Envoyé par wiki
et tout mon code est là :Envoyé par wiki
Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 procedure TForm1.FormCreate(Sender: TObject); begin dg.DefaultDrawing := False; // pour éviter le pointillé de sélection Panel4Grid.Parent := dg; // pour aligner le panel dans la cellule de la dg end; procedure TForm1.Panel2Resize(Sender: TObject); // pour voir le comportement du Panel4Grid begin with dg do begin Height:= panel2.Height div 2; Width := panel2.Width-20; Columns[0].Width := Width-20; RowHeights[0] := Height; Color:=clSkyBlue; Columns[0].Color:=clYellow; end; end;
Ce code donne ça :
Le Panel1 est aligné à gauche, le 2 à client, et le Panel4Grid, comme son nom l'indique, se retrouve sur la DrawGrid, mais bien mal placé...
Questions : c'est moi qui me suis gourré quelque part ?
C'est le wiki qui est à la ramasse ?
C'est pas supporté sous Linux ?
Ah, sous Windows XP et Laz 1.6rc1, sans rien changer au code ni aux réglages dans l'EDI (qui sont corrects !), le centrage vertical fonctionne.
Le boulot à moitié fait ? Allez comprendre...
J'ai "estranciné" la fiche pour montrer la réduction du Panel2, et donc la DrawGrid, et on voit bien le panel qui se barre lamentablement à gauche...
EDIT 5 minutes + tard : après avoir fait la copie d'écran sous Linux avec le panneau pas du tout centré puis être passé sous XP où j'ai découvert l'alignement vertical, je suis repassé sous Linux et là, l'alignement vertical est apparu également !
Est-ce que le passage sous un EDI + récent que mon vieux 1.4 aurait rajouté quelque chose ? Mystère et boule de gomme...
Partager