Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Stringgrid - Spalteweite - Anpassung an Text (https://www.delphipraxis.net/175977-stringgrid-spalteweite-anpassung-text.html)

Naka1985 4. Aug 2013 13:48

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 !

haentschman 4. Aug 2013 14:25

AW: Stringgrid - Spalteweite - Anpassung an Text
 
Hallo...
schau mal ob dir das weiterhilft:
http://www.delphipraxis.net/17422-op...nstellbar.html

PS: was fällt dir an deinem Bild auf? (Tippfehler) :zwinker:

sx2008 5. Aug 2013 07:22

AW: Stringgrid - Spalteweite - Anpassung an Text
 
das gibt es noch was Besseres in der Code-Library:
http://www.delphipraxis.net/25365-op...ringgrids.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz