goldensurfer - Mo 21.03.05 08:27
Titel: Stringgrid: Spaltenbreiten exakt anpassen
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