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. 👍 🙂


Anmelden zum Antworten