Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

AW: TStringGrid, Spaltenbreite so, dass rechts keine Lücke mehr ist

  Alt 23. Nov 2010, 10:30
Hat jemand sowas schon programmiert ?
Jo. Zumindest so in der Richtung :

Delphi-Quellcode:
procedure Tfrm.ErmittleGridBreite;
var i : integer;
begin
  PanelBreite := 0;
  for i := 0 to sg.ColCount - 1 do
    PanelBreite := PanelBreite + sg.ColWidths [i] + 1;
  PanelBreite := PanelBreite + GetSystemMetrics (SM_CYVSCROLL) + 10;
end; // ^ Reserve für Scrollbalken
Bei mir liegt das Grid auf einem Panel. Im Prinzip aber wohl egal.

Stop !

Die Form muss ja auch noch angepasst werden. Sonst hat das Grid eventuell keine Scrollbalken, dafür aber die Form (im FormShow) :

width := PanelBreite + 4; // wegen Panel-Rand Im Klartext sieht das dann so aus : anhand der nötigen Grid-Breite, die Panelbreiite ermitteln. Anhand des ermittelten Wertes wird dann die Breite der Form an die Panelbreite angepasst. Lästig sind allerdings noch die Ränder, die überall auftauchen. Deshalb das +4, +10 usw.
Gruß
Hansa

Geändert von Hansa (23. Nov 2010 um 10:39 Uhr)
  Mit Zitat antworten Zitat