Zitat von
hoika:
Hallo,
ja schon klar
GetSystemMetrics(SM_CXVSCROLL) ergibt bei mir aber 16, nicht 10.
Setze ich das so ein (statt der 10),
ist die Spalte zu schmal.
Heiko
Hey,
daran liegts auch nicht
Du hast nur + mit Minus verwechselt
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); // Da du iColwidth nachher abziehen möchtest, solltest du das hier auch draufrechnen und nicht subtrahieren
iLeftWidth:= theGrid.Width-iColWidth;
theGrid.ColWidths[theColumn]:= iLeftWidth;
except
end;
end;
MfG
Ansgar