AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringGrid Größe ermitteln

Ein Thema von BigAl · begonnen am 26. Aug 2020 · letzter Beitrag vom 27. Aug 2020
 
BigAl

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

TStringGrid Größe ermitteln

  Alt 26. Aug 2020, 21:02
Hallo zusammen,

ich muss einige Tabellen zur reinen Ausgabe von Daten ausgeben. Das soll dann z.B. so aussehen:

test01.png

Ich nutze dazu das TStringGrid, da mir da die VCL am wenigsten vorschreibt. Beim TListView habe ich z.B. das Problem, dass ich den Header nicht zo gezeichnet bekomme wie ich das will usw. Wie gesagt: Es handelt sich um eine reine Ausgabe, ohne jegliche Bedienung.

Das TStringGrid soll immer vollständig dargestellt werden. ScrollBars sind deaktiviert. Es werden also z.B. 4 Spalten und 8 Zeilen anzeigen. Die Breite ist variabel, das Grid wird dann entsprechen neu berechnet. Also z.B. Spalte 1 sind 40% der Breite, der Rest wird auf die restlichen Spalten aufgeteilt. Die Höhe ist aber in jedem Fall fix.

Ich versuche nun die exakte Höhe der Komponente zu berechnen, da andere Teile wieder dynamisch darauf reagieren. Da kommt jetzt das Problem:

Wie erhalte ich bei bekannte Zeilenzahl die exakt benötigte Höhe? RowHeight * RowCount haut nicht hin. Gebe ich z.B. 18 als Zeilenhöhe an, dann ist die Zeile in Wirklichkeit so 20 Pixel hoch. Dazu kommen dann noch die untere Linie, die Margins (AlignWithMargins ist True) etc. Im Moment habe ich das in etwa so im Quellcode:

(DefaultRowHeight + 2) * RowCount + Margins.Top + Margins.Bottom

Allerdings haut das noch wirklich hin. Die errechnete Höhe ist ein paar Pixel höher als die tatsächliche Höhe.

Hat irgendwer eine Idee wie man ein StringGrid auf exakte Größe bringen kann? Und wenn man die exakte Größe hat wie man die äußeren Dimensionen der Komponente exakt ermitteln kann? Width und Height sind ja wieder Größe abzüglich der Ränder...

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz