Sorry für die Verwirrung, ich versuche das mal zu erklären.
Das war dein Originalcode:
Delphi-Quellcode:
for x:= 0 to StringGrid1.ColCount-1 do
for y:= 0 to StringGrid1.RowCount-1 do
Vertrpl.Add(StringGrid1.Cells[x,y]);
for x:= 0 to StringGrid1.ColCount-1 do
Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x]));
for x:= 0 to StringGrid1.RowCount-1 do
Vertrpl.Add(IntToStr(StringGrid1.RowHeights[x]));
Du speicherst zunächst alle Zellen des Stringgrids ab, danach alle Spaltenbreiten und dann alle Zeilenhöhen.
Bei Formatieren deines Codes wurde folgendes daraus (Beitrag #6):
Delphi-Quellcode:
for x:= 0 to StringGrid1.ColCount-1 do
begin
for y:= 0 to StringGrid1.RowCount-1 do
begin
Vertrpl.Add(StringGrid1.Cells[x,y]);
end; // for y:= 0 to StringGrid1.RowCount-1
Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x]));
Vertrpl.Add(IntToStr(StringGrid1.RowHeights[x]));
end; // for x:= 0 to StringGrid1.ColCount-1
Fehler 1: Es werden nun nicht mehr
RowCount Zeilenhöhen gespeichert sondern
ColCount.
Fehler 2: Durch das Verlagern in die x-Schleife werden die Spaltenbreiten und Zeilenhöhen in die Zellendaten eingestreut. Nachdem jeder Spalte des Stringgrids folgt eine Spaltenbreite und darauf eine Zeilenhöhe.
In meinem Beitrag #13 habe ich versucht, das zu korrigieren. Aber wie das mit der 13 so ist, ich habe einen Fehler übersehen und später meinen eigenen Beitrag überarbeitet. Fabian hat in Beitrag #10 deinen Code ebenfalls formatiert aber dabei die Schleifenstruktur
nicht geändert. Deshalb hat sich dort der Fehler nicht eingeschlichen.
Sind nun alle Klarheiten beseitigt?
Gruß Hawkeye