Einzelnen Beitrag anzeigen

hoika

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

TStringGrid: Breite einer Spalte anpassen (fit to grid)

  Alt 14. Jan 2009, 09:40
Hallo #,

besser konnte ich es nicht ausdrücken.
Was ich will.
Im Zuge eines Tests for MultiLine-Grids
möchte ich eine Spalte in der Breite genau so anpassen,
dass das Grid ohne Scrollbar (horizontal) angezeigt wird.

Genau diese eine Spalte wäre dann der Kandidat für MultiLine.

Der nachfolgende Code funktioniert.
aber die Konstante C_AddSpace habe ich jetzt per Trial/Error ausprobiert.

Delphi-Quellcode:
procedure Grid_FitGridColSize(theGrid: TStringGrid; const theCol: Integer);
const
  C_AddSpace = 3;
var
  iGridWidth : Integer;
  iCol : Integer;
  iSumColWidth : Integer;
  iDiffColWidth : Integer;
begin
  try
    iGridWidth:= theGrid.Width;

    iSumColWidth:= 0;
    for iCol:= 0 to theGrid.ColCount-1 do
    begin
      if iCol<>theCol then
      begin
        if theGrid.ColWidths[iCol]>0 then
        begin
          iSumColWidth:= iSumColWidth+theGrid.ColWidths[iCol];
         { space between the columns } 
          Inc(iSumColWidth, C_AddSpace);
        end;
      end;
    end;

    iDiffColWidth:= iGridWidth-iSumColWidth;
    if iDiffColWidth<0 then
    begin
      iDiffColWidth:= 10;
    end;

    theGrid.ColWidths[theCol]:= iDiffColWidth;
  except
  end;
end; { Grid_FitGridColSize }
Komme ich an diese 3 irgendwie anderes ran
über Grid-Funktionen ?


Danke


Heiko
Heiko
  Mit Zitat antworten Zitat