Drucken funktioniert nur einmal
-
Hallo,
ich bin grad dabei ein wenig mit der Druckausgabe herumzuprobieren.
Dazu nutze ich den Code aus der Borland Hilfe:TPrinter *Prntr = Printer(); TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight- 200); Prntr->BeginDoc(); for( int i = 0; i < Memo1->Lines->Count; i++) { Prntr->Canvas->TextOut(200,200 + (i *Prntr->Canvas->TextHeight(Memo1->Lines->Strings[i])), Memo1->Lines->Strings[i]); } Prntr->Canvas->Brush->Color = clBlack; Prntr->Canvas->FrameRect(r); Prntr->EndDoc();Das Problem ist jetzt, dass ich wenn ich das erste Mal das ganze mit dem Klick auf den Button1 aufrufe funktioniert es tadellos, doch klick ich danach nocheinmal auf den Button, dann kommen an den Stellen an denen der Text stehen sollte nur schwarze Balken
Kann mir jemand helfen???
-
Brush->Color zurücksetzen!?
-
Wenn ich den Brush Color wieder auf weiß setze am Ende, dann ist bim nächsen mal aufrufen der ganzen Sache wieder die schwarzen Balken.
Sobald ich das Programm neu starte, kann ich wieder einmal drucken, danach wieder nur schwarze Balken anstatt die Strings

-
SimonLZ schrieb:
Wenn ich den Brush Color wieder auf weiß setze am Ende, dann ist bim nächsen mal aufrufen der ganzen Sache wieder die schwarzen Balken.
Wo ist 'am Ende'
Nach FrameRect oder nach EndDoc?
-
Hey,
hab nach langem rumprobieren und neu aufsetzen jetzt den Fehler beseitigt...hiermal für die Nachwelt

TPrinter *Prntr = Printer(); Prntr->BeginDoc(); Prntr->Canvas->Brush->Color = clWhite; for( int i = 0; i < Memo1->Lines->Count; i++) { Prntr->Canvas->TextOut(200,200 + (i *Prntr->Canvas->TextHeight(Memo1->Lines->Strings[i])), Memo1->Lines->Strings[i]); } TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight- 200); Prntr->Canvas->Brush->Color = clBlack; Prntr->Canvas->FrameRect(r); Prntr->EndDoc();Danke euch allen!