![]() |
Stringgrid - Spalteweite - Anpassung an Text
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,
ich brauche mal wieder Eure Hilfe. Ich möchte, dass die Spalten eines Stringgrid nicht breiter sind als notwendig. Dazu habe ich mir folgenden Code zusammenstepitzt 8-) und modifiziert:
Delphi-Quellcode:
with stringgrid1 do
begin for Spalte:=0 to (ColCount -1) do begin len:=0; for Zeile:=0 to (RowCount-1) do begin tmp:=Canvas.TextWidth(Cells[Spalte,Zeile]) + 50; if tmp>len then len:=tmp; ColWidths[Spalte]:=len; end; end; end; Leider führt dieser nicht zum gewünschten Ergebnis. Ich vermute, dass ich "TextWidth" falsch interpretiere. Ich habe bereits versucht die Variable tmp um einen beliebigen Faktor (hier +50) zu erhöhen, damit ich "einkalkuliere", dass die Spalten auch Ränder haben. Dies klappt auf dem ersten Blick auch. Ein Problem tritt dann auf, wenn die Zeichenketten in den Cells eine unterschiedliche Länge haben; dann funktioniert nämlich der Code nicht mehr wie gewünscht: Der Abstand zwischem dem letzten Buchstaben einer Zeichenkette einer Zelle X,Y zu ihrem Rand ist in Abhängigkeit von der Länge der Zeichenkette unterschiedlich groß. :gruebel: Zur Illustration habe ich mal ein Bild beigefügt: Ich hoffe mein Problem ist deutlich geworden... Danke für Eure Hilfe ! |
AW: Stringgrid - Spalteweite - Anpassung an Text
Hallo...
schau mal ob dir das weiterhilft: ![]() PS: was fällt dir an deinem Bild auf? (Tippfehler) :zwinker: |
AW: Stringgrid - Spalteweite - Anpassung an Text
das gibt es noch was Besseres in der Code-Library:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 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