Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#15

Re: Logisches problem

  Alt 27. Jan 2007, 16:42
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
  Mit Zitat antworten Zitat