StringGrid drucken
-
Hallo zusammen,
Ich bin grade dabei einen Vokabeltrainer zu schreiben, ich verwalte die Vokabeln in einem StringGrid. Dieses Stinggrid will ich drucken. Über den Printdialog und eine direkte Textkonvertierung funktioniert es aber nicht - wegen der Unterschiede zwischen TSring und AnsiString.

Hat jemand einen Lösungsvorschlag?
Ich bin für alle Ideen offen.MfG
Martin
-
Seibmada schrieb:
Über den Printdialog und eine direkte Textkonvertierung funktioniert es aber nicht
Was genau funktioniert nicht? Zeig mal deinen Ansatz.
-
Hab den Code beim letzen speichern verschusselt - Sorry.

Die Compilermeldung bezog sich aber auf eine nicht zulässige Konvertierung von TString nach AnsiString.
Meldung:
[C++ Fehler] Drucken.cpp(85): E2034 Konvertierung von 'TStrings *' nach 'AnsiString' nicht möglichWortlaut war ungefähr so:
void __fastcall TForm4::DruckenClick(TObject *Sender) { if(PrintDialog1->Execute()) { Printer()->BeginDoc(); for(int zeile=0;zeile<Form2->StringGrid1->RowCount;zeile++) { Printer()->Canvas->TextOut( 1000,1000, Form2->StringGrid1->Rows[zeile]); } Printer()->EndDoc(); } }Bin mir aber nicht ganz sicher....
-
Wenn du die Zeile wirklich am Stück ausgeben willst könntest du Rows[zeile]->Text, Rows[zeile]->CommaText oder Row->DelimitedText verwenden, die sind alle vom erforderlichen Typ AnsiString.
Besser (für die optische Gestaltung) wäre es aber sicher, über Rows[zeile]->Strings[index] auf die einzelnen Einträge zuzugreifen und sie nacheinander nebeneinander auszugeben, jeweils mit dem gewünschten Abstand.