Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#8

AW: StringGrid Drucken erweiterung

  Alt 20. Apr 2015, 09:36
Natürlich muss sich "XPos" bei "MoveTo" und "LineTo" unterscheiden, sonst gibt es keine Linie.
Aber warum ausgerechnet um den Wert "Grid.ColWidths[j] * 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 Textes unterscheiden.
Der Rahmen soll ja nicht durch den Text gehen, sondern darüber oder darunter gezeichnet werden.
Pseudocode:
Delphi-Quellcode:
YPos := InitYPos;
for Y := 0 to MaxY do
begin
  XPos := InitXPos;
  ZeichneZeilenLinie(XPos, XPosMax, YPos);
  YPos := BerücksichtigeHoeheDerLinie(YPos);

  for X := 0 to MaxX do
  begin
    ZeichneZellenText(XPos, YPos);
    XPos := BruecksichtigeBreiteDerZelle(XPos);
  end;

  YPos := BerücksichtigeHoeheDerZelle(YPos);
end;
  Mit Zitat antworten Zitat