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