Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

TStringGrid: optimale Breite einer Spalte

  Alt 20. Jul 2009, 16:35
Hallo #,

folgender Code soll eine Spalte so in der Breite anpassen,
dass das Grid optimal angezeigt wird,
d.h. die Spaltenbreite soll so vergrössert werden,
dass das Grid noch komplett angezeigt wird ohne Scrollbar.

Problem:
Die Breite ist zu gross,
es wird eine Scrollbar angezeigt.
Bei 5 Spalten müsste 171 als Breite rauskommen (von Hand getestet),
ist aber 185. Wo kommen die 14 Pixel noch her ?


Hintergrund:
Ich probier gerade ein paar WordWrap-Codes aus.
Die WordWrap-Spalte soll maximal gross sein.


Delphi-Quellcode:
procedure Grid_SetOptimalWidth(theGrid: TStringGrid;
  const theColumn: Integer);
var
  iLeftWidth : Integer;
  iColWidth : Integer;
  iCol : Integer;
begin
  try
    iColWidth:= 0;
    for iCol:= 0 to theGrid.ColCount-1 do
    begin
      if iCol<>theColumn then
      begin
        iColWidth:= iColWidth+theGrid.ColWidths[iCol];
      end;
    end;
    iColWidth:= iColWidth-(theGrid.GridLineWidth*theGrid.ColCount);

    iLeftWidth:= theGrid.Width-iColWidth;


    theGrid.ColWidths[theColumn]:= iLeftWidth;
  except
  end;
end;

Heiko
Heiko
  Mit Zitat antworten Zitat