Jetzt noch einmal ganz von vorne:
Wenn Du den Code in #25 ausführst, dann läuft das Programm.
Das StringGrid1 ist komplett leer und
RowCount ist 5
ColCount ist 5
FixedRows ist 1
FixedCols ist 1
wenn Du nun Button1 drückst, dann kommt der Fehler?
Delphi-Quellcode:
for F := 1 to sGrid.ColCount - 1 do // <- hier
begin
X1 := 0;
for TmpI := 1 to (F - 1) do // <- hier
X1 := X1 + 5 * (sGrid.ColWidths[TmpI]);
Y1 := 300;
X2 := 0;
for TmpI := 1 to F do // <- hier
X2 := X2 + 5 * (sGrid.ColWidths[TmpI]);
Y2 := 450;
TR := Types.Rect(X1, Y1, X2 - 30, Y2);
Printer.Canvas.Font.Style := [fsBold];
Printer.Canvas.Font.Size := 7;
Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]);
Printer.Canvas.Font.Style := [];
for TmpI := 1 to sGrid.RowCount - 1 do // <- hier
begin
Y1 := 150 * TmpI + 300;
Y2 := 150 * (TmpI + 1) + 300;
TR := Types.Rect(X1, Y1, X2 - 30, Y2);
Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);
end;
end;
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.