ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1035
1035
EMPFEHLEN
-
Ich melde mich mal wieder mit ner totalen Anfängerfrage - hab bestimmt 2h im Internet und hier gesucht aber nichts gefunden.
Ich möchte eine GroupBox und deren Inhalt ausdrucken, falls das nicht geht eine Memo.
Soweit bin ich schon:
Danke schonmal.if(PrintDialog1->Execute())
{
//Nur was kommt hier rein?
}
-
04.04.07 09:44 #2
- Registriert seit
- Mar 2004
- Beiträge
- 441
Also ich habe hier auch mit einem Projekt zu tun, bei dem ich drucken muß, allerdings weiß ich nicht genau, was und wie genau du es brauchst.
Unter DOS habe ich noch die Standardausgabe einfach auf den Drucker gelegt und dann PRINTs verwendet, aber unter Windows geht das anscheinend nicht so ohne weiteres (habe mich da selber halb tot gegoogelt).
Meine Funde waren fast samt und sonders aus der Delphi-Welt, aber die VCL ist für Delphi und CBuilder ja ziemlich gleich, nur daß halt die entsprechenden Sources angepaßt werden müssen.
Hier erstmal ein Link, der das Drucken mittels Win API etwas näher beleuchtet, zumindest was die Koordinatensysteme, Einheiten etc. angeht:
Printer Demo for Delphi
Empfehlenswerter ist bei der Benutzung einer Borland IDE jedoch die Verwendung von Quick- oder Rave Reports, die das Ausdrucken deutlich erleichtern (und auch die Methode darstellen, mit der ich hier beim Projekt den Ausdruck realisiert habe):
Rave Reports Tips & Tricks
Rave Reports Demo und Handbücher
Schlußendlich habe ich hier noch ein Codeschnippsel aus einem Uralt-Projekt, mit dem du evtl. etwas anfangen kannst. Achtung! Ich weiß nicht, ob dieser Source auch so funktioniert, da ich ihn etwas zusammensuchen musste. Aber ich denke, wenn du ihn dir etwas näher anschaust und die IDE-Hilfe zu Rate ziehst, dann kann dir das immerhin helfen, mal den ersten Schritt hinzubekommen:
Code :1 2 3 4 5 6 7 8 9 10
#include "vcl\Printers.hpp" // Include für Druckeranbindung int zeile = 0; Printer()->Orientation = poPortrait; Printer()->BeginDoc(); for(int i = 0; i < Memo->Lines->Count; i++) { Printer()->Canvas->TextOut(20, ((zeile + 1) * 20), Memo->Lines->Item[i]; } Printer()->EndDoc();
-
Danke.
Ich werde es mal ausprobieren und mich hier wieder melden. Hab aber noch rausgefunden, dass man mit "Print()" die aktive Form komplett ausdrucken kann, also so:
Edit:if(PrintDialog1->Execute())
{
Print(); //So wird die ganze Form ausgedruckt.
}
Hab nun deinen Code probiert und dieser druckt mir allerdings nur die erste Zeile aus.
Den Code hab ich wie wolgt umgeändert:
Edit2:#include "vcl\Printers.hpp" // Include für Druckeranbindung
int zeile = 0;
Printer()->Orientation = poPortrait;
Printer()->BeginDoc();
for(int i = 0; i < Memo1->Lines->Count; i++)
{
Printer()->Canvas->TextOut(20, ((zeile + 1) * 20), Memo->Lines->Strings[i];
}
Printer()->EndDoc();
Ich hab hier nun den Code der ein Memo wunderbar ausdruckt:
Des Weiteren geht es noch viel einfacher wenn man ein RichEdit ausdruckt: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();
RichEdit1->Print(RichEdit1->Text);Geändert von _Dome_ (04.04.07 um 14:01 Uhr) Grund: Ergänzung
Ähnliche Themen
-
GroupBox in Java?
Von Code46 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 05.01.11, 10:10 -
Groupbox auf mehreren Formularen
Von secret Burner im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 16.07.10, 07:59 -
UserControl mit GroupBox Verhalten
Von FwDonnerbalken im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 09.07.07, 10:38 -
AppWinStyle in Groupbox ?
Von Vamp7771 im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 03.11.06, 11:37 -
GroupBox
Von Topsen im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 17.06.04, 15:17





Zitieren
Login






