Ich habe ein TStringgrid und möchte die Darstellung so haben, dass sich zwar bei Bedarf ein vertikaler Scrollbalken am rechten Rand befindet, jedoch kein horizontaler am unteren Rand - d.h.: ich versuche, alle Spalten (es sind nur zwei) im Resize-Ereignis des übergeordneten Fensters so anzupassen, dass die Spalten genau in den Clientbereich passen.
Eine Berechnungsvorschrift, anhand der ich erkennen kann, wann ein vertikaler Scrollbalken angezeigt wird, habe ich schon:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TfrmWP.Splitter1Moved(Sender: TObject); var ScrollbarWidth: Integer; begin with sgWP do begin if RowCount * (GridLineWidth + DefaultRowHeight) + 3 > sgWP.Height then ScrollbarWidth := 19 else ScrollbarWidth := 0; ColWidths[1] := sgWP.Width - 62 - ScrollbarWidth; end; end; |
Wie stelle ich aber fest, wie breit der Scrollbalken eigentlich ist? Auf einem System hat ein Wert von 16 genau gepasst; auf einem anderen System muss ich schon 19 abziehen.
Gibt es eine Möglichkeit, den Wert je nach System zu ermitteln?
Gruss,
Ralf