TPrinter: Texte und Rechtecke auf einer Seite
-
Hallo,
wenn ich zuerst im Sourcecode den Textcodezeilen
Prntr->Canvas->TextOut(300,400,"Test");und danach den Rechteckcode
Prntr->Canvas->FrameRect(r);schreibe, bekomme ich ein geschwärzten Ausdruck in größe der Textfläche. Umgekehrt ist alles in Ordnung.
wo liegt hier der Fehler ?Gruß Siegfried
-
Hallo
kann ich nicht nachvollziehen. wenn ich diesen Code
TRect r(300, 400, 350, 415); Canvas->TextOut(300,400,"Test"); Canvas->FrameRect(r);nehme, kommt in beiden Fällen dasselbe raus, nämlich das was rauskommen soll.
Setzt du dazwischen noch irgendwelche Farbwerte des Canvas?bis bald
akari
-
wo liegt hier der Fehler ?
Wie soll jemand hier etwas dazu sagen, wenn du nicht mal mitteilst, wie gross r ist?
-
Hallo,
wenn ich in dieser Reihenfolge den Code schreibe, ist der komplette Ausdruck in Ordnung.
TStringList *nRect = new TStringList; TPrinter *Prntr = Printer(); TRect r; Prntr->Orientation = poLandscape; // quer Prntr->BeginDoc(); Prntr->Canvas->Font->Size = 15; Prntr->Canvas->TextOut(500,1500,"Project:"); Prntr->Canvas->Brush->Color = clBlack; r = Rect(200,200,1000,1000); Prntr->Canvas->FrameRect(r); Prntr->EndDoc(); Prntr->Orientation = poPortrait; // hochkantwenn ich jedoch in dieser Reihenfolge schreibe, wird anstand eines lesbaren Textes ein in der größe des Textes schwarzes Feld gedruckt.
TStringList *nRect = new TStringList; TPrinter *Prntr = Printer(); TRect r; Prntr->Orientation = poLandscape; // quer Prntr->BeginDoc(); Prntr->Canvas->Brush->Color = clBlack; r = Rect(200,200,1000,1000); Prntr->Canvas->FrameRect(r); Prntr->Canvas->Font->Size = 15; Prntr->Canvas->TextOut(500,1500,"Project:"); Prntr->EndDoc(); Prntr->Orientation = poPortrait; // hochkantHier stehe ich auf dem Schlauch und komme nicht weiter.
Da ich die erste Reihenfolge einsetzen möchte, um weitere Texte in verbindung mit den Koordinaten der Rechtecke zu verarbeiten, ist diese einfacher zu handhaben.Gruß Siegfried

-
TRect r; Printer()->Orientation = poLandscape; // quer Printer()->BeginDoc(); Printer()->Canvas->Font->Size = 15; TBrushRecall *brush= new TBrushRecall(Printer()->Canvas->Brush); brush->Store(); Printer()->Canvas->Brush->Color = clBlack; r = Rect(200,200,1000,1000); Printer()->Canvas->FrameRect(r); delete brush; Printer()->Canvas->TextOut(500,1500,"Project:"); Printer()->EndDoc(); Printer()->Orientation = poPortrait; // hochkant
-
Hallo,
Danke für die schnelle Antwort.
Gruß Siegfried
