<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Drucken über Printer(), finde Fehler nicht..]]></title><description><![CDATA[<p>Hi LEute, heute nen sicher schusselfehler...aber ich finde fehler einfach nicht!</p>
<pre><code class="language-cpp">void __fastcall TOwnPad::printBtnClick(TObject *Sender)
{
if (PrintDialog-&gt;Execute())
{
 Printer()-&gt;Title = &quot;OwnPad&quot; + SaveDialog-&gt;FileName;
 Printer()-&gt;Canvas-&gt;Font = Memo-&gt;Font;
 int lineheight= abs(MulDiv(Printer()-&gt;Canvas-&gt;Font-&gt;Size,GetDeviceCaps(Printer()-&gt;Handle,
     LOGPIXELSY),72));
 lineheight *=1.4;

 int linesperpage = (Printer()-&gt;PageHeight/lineheight)-4;
 int linecount = 4;

 Printer()-&gt;BeginDoc();
 TRect rect;
 rect.Top=lineheight;
 rect.Left=20;
 rect.Right=Printer()-&gt;PageWidth;
 rect.Bottom=lineheight*2;
 DrawText(Printer()-&gt;Handle,OpenDialog-&gt;FileName.c_str(),-1,rect,DT_CENTER);
 for (int i =0;i&lt;Memo-&gt;Lines-&gt;Count;i++)
 {
  if(linecount++==linesperpage)
   {
    PrintFooter(rect,lineheight);
    linecount=4;
    Printer()-&gt;NewPage();
   }
   String s = Memo-&gt;Lines-&gt;Strings[i];
   Printer()-&gt;Canvas-&gt;TextOutA(0,linecount*lineheight,s);
 }

PrintFooter(rect,lineheight);
Printer()-&gt;EndDoc();
}
}
</code></pre>
<p>hier soll eben über eine eigene Funktion PageFooter gedruckt werden....aber ich bekomme hier den fehler:</p>
<p>Konvertierung von TRect nach tagREct* nicht möglich, in der Zeile:</p>
<pre><code class="language-cpp">DrawText(Printer()-&gt;Handle,OpenDialog-&gt;FileName.c_str(),-1,rect,DT_CENTER);
</code></pre>
<p>aber stimmt die DrawText Funktion so denn nicht?</p>
<p>PS: soviel hab ich mit der noch nich gearbeitet!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/101549/drucken-über-printer-finde-fehler-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 03:48:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/101549.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Feb 2005 10:50:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Drucken über Printer(), finde Fehler nicht.. on Thu, 17 Feb 2005 10:50:38 GMT]]></title><description><![CDATA[<p>Hi LEute, heute nen sicher schusselfehler...aber ich finde fehler einfach nicht!</p>
<pre><code class="language-cpp">void __fastcall TOwnPad::printBtnClick(TObject *Sender)
{
if (PrintDialog-&gt;Execute())
{
 Printer()-&gt;Title = &quot;OwnPad&quot; + SaveDialog-&gt;FileName;
 Printer()-&gt;Canvas-&gt;Font = Memo-&gt;Font;
 int lineheight= abs(MulDiv(Printer()-&gt;Canvas-&gt;Font-&gt;Size,GetDeviceCaps(Printer()-&gt;Handle,
     LOGPIXELSY),72));
 lineheight *=1.4;

 int linesperpage = (Printer()-&gt;PageHeight/lineheight)-4;
 int linecount = 4;

 Printer()-&gt;BeginDoc();
 TRect rect;
 rect.Top=lineheight;
 rect.Left=20;
 rect.Right=Printer()-&gt;PageWidth;
 rect.Bottom=lineheight*2;
 DrawText(Printer()-&gt;Handle,OpenDialog-&gt;FileName.c_str(),-1,rect,DT_CENTER);
 for (int i =0;i&lt;Memo-&gt;Lines-&gt;Count;i++)
 {
  if(linecount++==linesperpage)
   {
    PrintFooter(rect,lineheight);
    linecount=4;
    Printer()-&gt;NewPage();
   }
   String s = Memo-&gt;Lines-&gt;Strings[i];
   Printer()-&gt;Canvas-&gt;TextOutA(0,linecount*lineheight,s);
 }

PrintFooter(rect,lineheight);
Printer()-&gt;EndDoc();
}
}
</code></pre>
<p>hier soll eben über eine eigene Funktion PageFooter gedruckt werden....aber ich bekomme hier den fehler:</p>
<p>Konvertierung von TRect nach tagREct* nicht möglich, in der Zeile:</p>
<pre><code class="language-cpp">DrawText(Printer()-&gt;Handle,OpenDialog-&gt;FileName.c_str(),-1,rect,DT_CENTER);
</code></pre>
<p>aber stimmt die DrawText Funktion so denn nicht?</p>
<p>PS: soviel hab ich mit der noch nich gearbeitet!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/725494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/725494</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Thu, 17 Feb 2005 10:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to Drucken über Printer(), finde Fehler nicht.. on Thu, 17 Feb 2005 11:43:06 GMT]]></title><description><![CDATA[<p>Hast Du Dir mal die Beispiele zu Printer in der BCB-Hilfe angeschaut?<br />
DrawText() wie Du es verwendest habe ich nicht im Zusammenhang mit Printer gesehen.<br />
Allerdings habe ich noch nie damit gearbeitet. Die konkreten Beispiele in der Hilfe sollten<br />
aber für einen Start ausreichen.</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/725536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/725536</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Thu, 17 Feb 2005 11:43:06 GMT</pubDate></item><item><title><![CDATA[Reply to Drucken über Printer(), finde Fehler nicht.. on Thu, 17 Feb 2005 11:53:44 GMT]]></title><description><![CDATA[<p>DrawText erwartet an der Stelle einen Pointer auf eine Struktur vom Typ RECT (nicht TRect). Also folgendermaßen:</p>
<pre><code class="language-cpp">RECT rect;
 rect.top=lineheight;
 rect.left=20;
 rect.right=Printer()-&gt;PageWidth;
 rect.bottom=lineheight*2;
 DrawText(Printer()-&gt;Handle,OpenDialog-&gt;FileName.c_str(),-1,&amp;rect,DT_CENTER);
</code></pre>
<p>Ob das Drucken dann so funktioniert weiß ich aber auch nicht, da ich in diesem Zusammenhang DrawText noch nicht verwendet habe.<br />
Siehe auch <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_0odw.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_0odw.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/725541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/725541</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 17 Feb 2005 11:53:44 GMT</pubDate></item><item><title><![CDATA[Reply to Drucken über Printer(), finde Fehler nicht.. on Thu, 17 Feb 2005 12:06:17 GMT]]></title><description><![CDATA[<p>Ah es geht jetzt, waren paar fehler, einmal hatte ich stdlib nicht inkludiert!</p>
<p>Dann hatte ich im Protoyp der Funktion nen Fehler...</p>
<p>Und ich hatte vor dem rect das &amp; vergessen....jetzt geht es einwandfrei...danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/725551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/725551</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Thu, 17 Feb 2005 12:06:17 GMT</pubDate></item><item><title><![CDATA[Reply to Drucken über Printer(), finde Fehler nicht.. on Thu, 17 Feb 2005 12:25:45 GMT]]></title><description><![CDATA[<p>Zeig doch mal, wie es jetzt funktioniert. Nur so interessehalber, vielleicht braucht's ja<br />
irgendjemand mal (am Ende vielleicht ich selbst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> )</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/725578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/725578</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Thu, 17 Feb 2005 12:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to Drucken über Printer(), finde Fehler nicht.. on Thu, 17 Feb 2005 15:32:16 GMT]]></title><description><![CDATA[<p>Ok, also ein funktion, die über Printer() ein Formular ausdruckt, einen rand lässt, unten Page anzeigt, und automatisch neue Seite druckt, wenn rand erreicht wird:</p>
<p>Funktion:</p>
<pre><code class="language-cpp">void TOwnPad::PrintFooter(TRect&amp; rect,int lineheight)
{
char buff[10];
wsprintf(buff,&quot;Page %d&quot;,Printer()-&gt;PageNumber);//Für Page
rect.Top=Printer()-&gt;PageHeight-(lineheight*2); //Rand oben
rect.Bottom=rect.Top+lineheight;  //Rand unten
DrawText(Printer()-&gt;Handle,buff,-1,&amp;rect,DT_CENTER); //zum &quot;schreiben&quot;
Printer()-&gt;Canvas-&gt;MoveTo(0,rect.Top-2);  //eine Linie über Seitenanzahl
Printer()-&gt;Canvas-&gt;LineTo(rect.Right,rect.Top-2); //
}
</code></pre>
<p>Und der aufruf..</p>
<pre><code class="language-cpp">void __fastcall TOwnPad::printBtnClick(TObject *Sender)
{
if (PrintDialog-&gt;Execute())
{
 String blank = &quot; &quot;;
 Printer()-&gt;Title = &quot;OwnPad&quot; + blank + SaveDialog-&gt;FileName;  //Name in Druckfenster
 Printer()-&gt;Canvas-&gt;Font = Memo-&gt;Font;
 int lineheight= abs(MulDiv(Printer()-&gt;Canvas-&gt;Font-&gt;Size,GetDeviceCaps(Printer()-&gt;Handle,
     LOGPIXELSY),72)); //Berechnung der Höhe der Linien zum drucken, ABS das nich negativ
 lineheight *=1.4; //

 int linesperpage = (Printer()-&gt;PageHeight/lineheight)-4;  //4 Zeilen wegnehmen
 int linecount = 4;

 Printer()-&gt;BeginDoc();
 TRect rect;
 rect.Top=lineheight;
 rect.Left=20;
 rect.Right=Printer()-&gt;PageWidth;
 rect.Bottom=lineheight*2;
 DrawText(Printer()-&gt;Handle,OpenDialog-&gt;FileName.c_str(),-1,&amp;rect,DT_CENTER);
 for (int i =0;i&lt;Memo-&gt;Lines-&gt;Count;i++)
 {
  if(linecount++==linesperpage)  //wenn linesperpage erreicht wird dann..
   {
    PrintFooter(rect,lineheight);
    linecount=4;
    Printer()-&gt;NewPage();   //...neue Seite
   }
   String s = Memo-&gt;Lines-&gt;Strings[i];  //jede Zeile drucken
   Printer()-&gt;Canvas-&gt;TextOutA(0,linecount*lineheight,s);
 }

PrintFooter(rect,lineheight);
Printer()-&gt;EndDoc();
}
}
</code></pre>
<p>und eben in der Headerdatei die deklaration nich vergessen für funktion!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/725758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/725758</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Thu, 17 Feb 2005 15:32:16 GMT</pubDate></item></channel></rss>