TPrinter -> drucken -> Zeile zu ende
-
Hi!
Ich bräuchte mal wieder eure Hilfe
void __fastcall TForm1::SystemDruckenClick(TObject *Sender) { if(PrintDialog1->Execute()) { } TPrinter *Prntr = Printer(); TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight- 200); //120 Prntr->BeginDoc(); for( int i = 0; i < Liste->RowCount-1; i++) { Prntr->Canvas->TextOut(210,(400 * i) + 200 + (i *Prntr->Canvas->TextHeight("Essen: " + Liste->Cells[0][i+1])), "Essen: " + Liste->Cells[0][i+1]); Prntr->Canvas->TextOut(210,(400 * i) + 300 + (i *Prntr->Canvas->TextHeight("Symptome: " + Liste->Cells[1][i+1])), "Symptome: " + Liste->Cells[1][i+1]); Prntr->Canvas->TextOut(210,(400 * i) + 400 + (i *Prntr->Canvas->TextHeight("Datum: " + Liste->Cells[2][i+1])), "Datum: " + Liste->Cells[2][i+1]); Prntr->Canvas->TextOut(210,(400 * i) + 500 + (i *Prntr->Canvas->TextHeight("Inhaltsstoffe: " + inhaltsstoffe[i])), "Inhaltsstoffe: " + inhaltsstoffe[i]); Prntr->Canvas->TextOut(210,(400 * i) + 600 + (i *Prntr->Canvas->TextHeight("-----------------------------------------------------")), "-----------------------------------------------------"); } Prntr->Canvas->Brush->Color = clBlack; Prntr->Canvas->FrameRect(r); Prntr->EndDoc(); }i.A. ist der Textinhalt von inhaltsstoffe, länger als die Zeile auf dem Blatt lang ist. Habt ihr eine Idee wie ich es dann auf die nächste Zeile ausweiten kann?
-
So wie es ein TextHeight das du schon verwendest gibt gibt es auch ein TextWidth das dir die breite zurück gibt.
Wenn der Text länger als dein Druckbereich ist, dann splitte deine Ausgabe und fang eine zweite Zeile an.