Forum: Algorithmen, Datenstrukturen und Klassendesign
by Blup,
20. Apr 2015
Zusammengefasst ist die einfachste Lösung, die Reihenfolge des Codes umzustellen.
Damit wird die durch "MoveTo" gesetzte Cursorposition nicht durch das folgende "TextOut" verändert.
Printer.Canvas.TextOut(XPos, -YPos, Grid.Cells);
if EigeneDruckerEinstellungen.rgLinien.ItemIndex = 0 then
begin
Printer.Canvas.MoveTo(XPos, -YPos);
end;
XPos := XPos + Grid.ColWidths * 3;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Blup,
20. Apr 2015
Natürlich muss sich "XPos" bei "MoveTo" und "LineTo" unterscheiden, sonst gibt es keine Linie.
Aber warum ausgerechnet um den Wert "Grid.ColWidths * 3", soll damit die horizontale Linie für eine Zelle gezeichnet werden?
Viel sinnvoller währe es, die horizontale Linie einmal pro Zeile über die ganze Tabellenbreite zu zeichnen.
Auf jeden Fall sollte sich "YPos" beim Zeichnen der Linie und des...