1 pièce(s) jointe(s)
ScrollBars de la ScrollBox invisibles (avec un "s", c'est les sbr, pas la sbx)
Bonjour,
après mes mésaventures de centrage de l'objet qu'elle contient, voilà qu'une ScrollBox refuse systématiquement d'afficher ses ScrollBars quand c'est nécessaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function its(i:integer):string; begin Result:=IntToStr(i);end;
procedure TForm1.FormCreate(Sender: TObject);
begin
PanelAuCentre.Parent := sb; // pour aligner le panel dans une scrollbox avec border à 0 et alClient
sb.AutoScroll:=True; // voir commentaire + bas
end;
procedure TForm1.sbResize(Sender: TObject);
begin
// What I do now is set AutoScroll to False in the IDE, then set it to True in code
// https://forum.lazarus.freepascal.org/index.php?topic=18040.0
sb.HorzScrollBar.Visible := (sb.Width < PanelAuCentre.Width); // jamais vu
sb.VertScrollBar.Visible := (sb.Height < PanelAuCentre.Height); // jamais vu
caption := its(sb.Width)+' '+its(PanelAuCentre.Width)+' '+booltostr(sb.HorzScrollBar.Visible);
end; |
Pièce jointe 315757
La scrollbox est verte, le panneau centré dedans est crème, le "-22" c'est son .Left, le "8" c'est son .Top et les deux autres la taille "client" de la scrollbox.
Le "-1" dans la Caption de la fiche indique que la scrollbar horizontale est viible. Vous la voyez, vous ?
En désespoir de cause j'ai essayé de forcer l'affichage avec un CheckBox, mais même ça est inopérant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| procedure TForm1.ckbxSBonoffChange(Sender: TObject);
begin
if ckbxSBonoff.Checked then begin
sb.AutoScroll := True;
sb.HorzScrollBar.Visible := True;//(sb.Width < PanelAuCentre.Width);
sb.VertScrollBar.Visible := True;//(sb.Height < PanelAuCentre.Height);
end else begin
sb.AutoScroll := False;
sb.HorzScrollBar.Visible := False;//(sb.Width < PanelAuCentre.Width);
sb.VertScrollBar.Visible := False;//(sb.Height < PanelAuCentre.Height);
end;
caption := its(sb.Width)+' '+its(PanelAuCentre.Width)+' '+booltostr(sb.HorzScrollBar.Visible);
end; |
La seule chose que je vois changer, c'est l'état du booléen, -1 > 0 > -1 etc.
Une idée ?