Hallo,
was macht ihr da, und warum.....?
Warum nicht einfach so:
Delphi-Quellcode:
function GetGridWidth(aStringGrid: TStringGrid): integer;
var
i: integer;
begin
Result := 0;
with aStringGrid do
for i := 0 to ColCount-1 do
inc(Result, ColWidths[i] + GridLineWidth);
end; // GetGridWidth
function GetGridHeight(aStringGrid: TStringGrid): integer;
var
i: integer;
begin
Result := 0;
with aStringGrid do
for i := 0 to RowCount-1 do
inc(Result, RowHeights[i] + GridLineWidth);
end; // GetGridHeight
procedure AdjustFormSize(aStringGrid: TStringGrid; aForm: TForm);
begin
with aStringGrid do
begin
ClientWidth := GetGridWidth(aStringGrid);
ClientHeight := GetGridHeight(aStringGrid);
end;
aForm.AutoSize := true;
end; // AdjustFormSize
und dann im FormShow oder wo es passieren soll
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
AdjustFormSize(StringGrid1, Self);
end;
Ganz einfache Antwort: Weil dieser Code nicht so funktioniert, wie ich es wünsche und auch beschrieb. Nicht nur, daß die Scrollbalken zu sehen sind (sofern erlaubt), das StringGrid wird nicht vollständig dargestellt (auch dann nicht, wenn der Bildschirm dafür eigentlich groß genug ist), und das Formular ist "dank" AutoSize nicht einmal mehr manuell zoombar.
Sooo simpel ist es also wohl nicht, womit auch die Frage nach dem Warum beantwortet ist.