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
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ß.
Zur Illustration habe ich mal ein Bild beigefügt:
Ich hoffe mein Problem ist deutlich geworden...
Danke für Eure Hilfe !