Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#5

AW: TStringGrid Größe ermitteln

  Alt 27. Aug 2020, 06:30
Es ist besser statt der 2 Pixel die Höhe der Trennlinie korrekt aus GridLineWidth abzuleiten. Bei mir ist das

(DefaultRowHeight + GridLineWidth) * RowCount + GridLineWidth

Die Trennline muss pro Zeile nur einmal berücksichtigt werden. Nur bei der letzen (bzw. der ersten) Zeile muss die Trennlinie noch einmal berücksichtigt werden.
Ja, bei mir steht es mittlerweile so im Quelltext (gekürzt):

Delphi-Quellcode:
var
  GridHeight: Integer;
begin
  GridHeight := Grid.GridLineWidth + (Grid.DefaultRowHeight + Grid.GridLineWidth) * Grid.RowCount;
  if Grid.AlignWithMargins then
   GridHeight := GridHeight + Grid.Margins.Top + Grid.Margins.Bottom;
  Panel.ClientHeight := GridHeight;
  ...
Das haut auch einigermaßen hin. Sind halt an die 30 Grids die ich so verwalten muss (in verschiedenen Formularen) und ich suche eine "stabile" Lösung. Muss das aber auf verschiedenen Zielgeräten prüfen, da heutzutage ein Pixel ja nicht immer gleich ein Pixel ist. Die Kunden stehen leider immer mehr auf ihre 4K und noch höher auflösenden Monitore und stellen da dann Skalierungen von 200% und mehr ein...
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat