Label drucken
-
Hei Ho Community.
Ich habe es geschafft einen befehl zu finden, mit dem ich Memo und RichEdit Inhalte drucken kann.if(print->Execute()) { Printer()->BeginDoc(); int b=2000; int EF=5; int GH=100; for (int dd=0; dd<Form1->Memo4->Lines->Count;dd++) { AnsiString f=Form1->Memo4->Lines->Strings[dd]; Printer()->Canvas->TextOut(EF,b,f); b=b+GH+Printer()->Canvas->TextHeight(f); } Printer()->EndDoc(); }Mein Problem nun ist, dass ich auch Label drucken möchte.
Könnt ihr mir helfen?
Vielen Dank
Brösel
-
Hallo
und wo ist dein Problem? TLabel hat die Eigenschaft Text vom Typ AnsiString... kannst du genauso benutzen wie die einzelnen Zeilen der Stringlisten.
bis bald
akari
-
Danke für deine schnelle Antwort.
Meinst du so?int b=2000; int EF=5; int GH=100; for (int dd=0; dd<Form1->Label1->Text->Count;dd++) { AnsiString f=Form1->Label1->Text->Strings[dd]; Printer()->Canvas->TextOut(EF,b,f); b=b+GH+Printer()->Canvas->TextHeight(f); }Hier kommt bei mir der Fehler : "Pointer to structure required on left side of -> or ->*"
Und markiert is die Zeile mit dem For schleifen Kopf.
-
Hallo,
Form1->Label1->Text->Strings[dd]
Wo zum Teufel hast du das denn her? Ich glaube du hast grundsätzliche Mängel. Schau dir doch mal in der BCB-Hilfe die Komponente TLabel an (Besonders die Eigentschaften wie z.B. Caption).
/EDIT:
Form1->Label1->Text->Count
Hier gilt das Gleiche. Entweder nicht nachgedacht (o_O) oder man hat dringlichst Einsteiger Tutorials nötig.
mfg cb
-
Hallo
sorry meinte natürlich Caption anstatt Text.
Trotzallem ist Caption vom Typ AnsiString, nicht vom Typ TStringList.bis bald
akari
-
Danke für eure Antwort.
int b=2000; int EF=5; int GH=100; for (int dd=0; dd<Form1->Label1->Caption->Count;dd++) { AnsiString f=Form1->Label1->Caption->Strings[dd]; Printer()->Canvas->TextOut(EF,b,f); b=b+GH+Printer()->Canvas->TextHeight(f); }Da kommt nun wieder der gleiche Fehler obwohl ich Caption genommen habe.
-
Trotzallem ist Caption vom Typ AnsiString, nicht vom Typ TStringList.
bezieht sich darauf:
AnsiString f=Form1->Label1->Caption->Strings[dd];und
for (int dd=0; dd<Form1->Label1->Caption->Count;dd++) { ...Wieviele Zeilen hat dein Label ?
Du solltest erstmal Grundlagenforschung betreiben, und nicht ohne jedes Verständnis allen möglichen Code zusammenwürfeln.
-
Könntest du mir, dem absoluten Noob, eine Code Hilfe geben?
Ich weiß nicht, wei ich da ansetzen soll.
-
@Brösel: Die BCB-Hilfe beinhaltet alle Informationen die du benötigst:
TControl::Caption
Mit Hilfe von Caption können Sie den Text angeben, durch den das Steuerelement in der Benutzeroberfläche beschriftet wird.
Mittels Label1->Caption kannst du also den Text des Labels auslesen, sowie neu setzen.
Die FOR-Schleife kannst du dir schenken, da es 1. Keine (Unter)Eigentschaft Count gibt und du in TLabel::Caption den gesamten Text vorfindest. Bei Memo/RichEdit, worauf dein Beispiel ja bezogen ist, wird der gesamte Text Zeile pro Zeile mit z.B. TMemo::Lines ausgelesen.
Also (bin verschlafen, aber müsste so stimmen):
if(print->Execute()) { Printer()->BeginDoc(); Printer()->Canvas->TextOut(5,2000,Form1->Label1->Caption); Printer()->EndDoc(); }mfg cb
-
@carstenbauer
Vielen vielen Dank.
hat alles geklappt.
Vielen Dank.
