Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#36

AW: Mehrere Formulare an Stringgridgröße anpassen

  Alt 31. Okt 2010, 23:21
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.
  Mit Zitat antworten Zitat