<?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[DrawText geht in einer Unit nicht???]]></title><description><![CDATA[<p>Hallo, stehe vor einem Rätsel. Ich zeichne eine ListView selbst; dies funktioniert in Units eines anderen Projekts einwandfrei; kopiere ich nun die Funktion rüber kommt immer bei DrawText (kommt in der Funktion zweimal vor) die Meldung:</p>
<blockquote>
<p>[C++ Warnung] LokalePC.cpp(931): W8006 const Windows__1 wird mit ComCtrls__9 initialisiert<br />
Vollständiger Parser-Kontext<br />
LokalePC.cpp(914): Analyse von: void _fastcall TForm18::frm18_lvTabelleDrawItem(TCustomListView *,TListItem *,TRect &amp;,TOwnerDrawState)<br />
[C++ Fehler] LokalePC.cpp(942): E2034 Konvertierung von 'char *' nach 'const wchar_t *' nicht möglich<br />
Vollständiger Parser-Kontext<br />
LokalePC.cpp(914): Analyse von: void _fastcall TForm18::frm18_lvTabelleDrawItem(TCustomListView *,TListItem *,TRect &amp;,TOwnerDrawState)<br />
[C++ Fehler] LokalePC.cpp(942): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpString' ('const wchar_t *' erwartet, 'char *' erhalten)<br />
Vollständiger Parser-Kontext<br />
LokalePC.cpp(914): Analyse von: void _fastcall TForm18::frm18_lvTabelleDrawItem(TCustomListView *,TListItem *,TRect &amp;,TOwnerDrawState)</p>
</blockquote>
<p>Funktion (ListView ist frm18_lvTabelle):</p>
<pre><code class="language-cpp">void __fastcall TForm18::frm18_lvTabelleDrawItem(TCustomListView *Sender, TListItem *Item, TRect &amp;ARect, TOwnerDrawState State)
{try {                                                                          // Fehlerroutine Start
 Integer iSymb,iAnz,iB,iStil,iItem; AnsiString z1,z2;                           // Vars definieren
 TColor f1,f2; TCanvas *ACanvas;                                                // Vars definieren
 TListView   *LView= dynamic_cast&lt;TListView   *&gt;     (Sender);                  // Versuchen, Sender als TListView anzusprechen
 TRect CRect;                                                                   // Rect Strukt vorbereiten
 Graphics::TBitmap *bmp;                                                        // Bitmap vorbereiten

 z1     =&quot; &quot;+Item-&gt;Caption;                                                     // aktuelle Spalte
 iAnz   =Item-&gt;SubItems-&gt;Count;                                                 // Anzahl Subs
 iItem  =Item-&gt;Index;                                                           // Index ermitteln
 ACanvas=LView-&gt;Canvas;                                                         // Canvas übergeben
 f1     =clWhite;                                                               // Voreinstellung HG in ws
 f2     =clGray;                                                                // Textfarbe
 iStil  =DT_LEFT;                                                               // Ausrichtung

// if(oZugZeil==true &amp;&amp; Odd(iItem)==true) { f1=0x00EEEEEE; }                      // HG, alle 2 Zeilen hellgrau
 if(Odd(iItem)==true) { f1=0x00EEEEEE; }                                        // HG, alle 2 Zeilen hellgrau
 if(State.Contains(cdsSelected)==true)  { f1=clSkyBlue; f2=clNavy; }            // Eintrag ist selektiert

 CRect=ARect;                                                                   // Koords neu übergeben
 CRect.Right=LView-&gt;Columns-&gt;Items[0]-&gt;Width-1;                                 // Breite 1. Spalte
 ACanvas-&gt;Brush-&gt;Color=f1;                                                      // Farbe HG festlegen
 ACanvas-&gt;Font-&gt;Color =f2;                                                      // Farbe VG festlegen
 ACanvas-&gt;FillRect(CRect);                                                      // HG befüllen

 CRect      =ARect;                                                             // Koords neu übergeben
 CRect.Left+=20;                                                                // Text wegen Symbole mehr rechts
 ACanvas-&gt;Font-&gt;Name=&quot;Arial&quot;; ACanvas-&gt;Font-&gt;Size=8;                            // Schriftart
 DrawText(ACanvas-&gt;Handle,&quot;test&quot;,-1,&amp;CRect,iStil | DT_VCENTER | DT_SINGLELINE); // und beschriften

 iSymb=Item-&gt;ImageIndex;                                                        // aktuelles Symbol vorne?
 CRect.Left-=20;                                                                // Koordinate wieder abziehen
 bmp  =new Graphics::TBitmap();                                                 // neue Bitmap anlegen
 Form1-&gt;frm1_ImageList1-&gt;GetBitmap(iSymb,bmp);                                  // und aus ImageListe holen
 ACanvas-&gt;Draw(CRect.Left,CRect.Top,bmp);                                       // Checkbox zeichnen
 delete bmp;                                                                    // Bitmap löschen

                                                                                // SUBITEMS ZEICHNEN
 CRect=ARect;                                                                   // Koords neu übergeben
 for(int i1=0;i1&lt;iAnz;i1++) {                                                   // die Subs zeichnen
  z1=&quot; &quot;+Item-&gt;SubItems-&gt;Strings[i1];                                           // Spaltentext auslesen
  iB=LView-&gt;Columns-&gt;Items[i1]-&gt;Width;                                          // Breite der Spalte X
  //f1=clWhite; if(oZugZeil==true &amp;&amp; Odd(iItem)==true) { f1=0x00EEEEEE; }         // HG, alle 2 Zeilen hellgrau
  f1=clWhite; if(Odd(iItem)==true) { f1=0x00EEEEEE; }                           // HG, alle 2 Zeilen hellgrau
  f2=clBlack;                                                                   // Textfarbe
  CRect.Left +=iB;                                                              // X1-Koord neu
  CRect.Right =CRect.Left+LView-&gt;Column[i1+1]-&gt;Width-1;                         // X2-Koord neu
  iStil       =DT_LEFT;                                                         // Ausrichtung

  switch(i1) {                                                                  // welche Spalte?
  case 0:                                                                       // 01 GERÄTENAME
   f2=clBlue;                                                                   // Standard
   if(z1.AnsiPos(&quot;unbekannt&quot;)&gt;0) { f2=clRed; }                                  // Gerät unbekannt
   break;                                                                       // und fertig
  case 1:                                                                       // 02 GERÄTETYP
   f2=clBlue;                                                                   // Standard
   break;                                                                       // und fertig
  default: break;                                                               // WEITERE SPALTEN STANDARD
  }                                                                             // ende switch(i1

  if(State.Contains(cdsSelected)==true)  { f1=clSkyBlue; f2=clNavy; }           // Eintrag ist selektiert

  ACanvas-&gt;Brush-&gt;Color=f1;                                                     // Farbe HG festlegen
  ACanvas-&gt;Font-&gt;Color =f2;                                                     // Farbe VG festlegen
  ACanvas-&gt;FillRect(CRect);                                                     // HG befüllen
  DrawText(ACanvas-&gt;Handle,z1.c_str(),-1,&amp;CRect,iStil | DT_VCENTER | DT_SINGLELINE);  // und beschriften
 }                                                                              // ende for(i1

 } catch(Exception&amp; e) { MessageBox(NULL, e.Message.c_str(), &quot;TForm18::frm18_lvTabelleDrawItem()&quot;, MB_OK); }  // Fehler anzeigen
}
</code></pre>
<p>Zeile 30 und Zeile 67 meckert er; wenn ich die wegmache, dann meckert er nicht mehr, zeichnet aber (logischerweise) auch nicht mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> Die Eigenschaft OwnerDraw sitzt auf True.</p>
<p>Was will der Bub äh BCB von mir? Grübel...</p>
<p>Danke für jeden Tipp.<br />
Gruss Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/195196/drawtext-geht-in-einer-unit-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 08:37:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195196.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Oct 2007 12:18:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DrawText geht in einer Unit nicht??? on Mon, 15 Oct 2007 12:18:50 GMT]]></title><description><![CDATA[<p>Hallo, stehe vor einem Rätsel. Ich zeichne eine ListView selbst; dies funktioniert in Units eines anderen Projekts einwandfrei; kopiere ich nun die Funktion rüber kommt immer bei DrawText (kommt in der Funktion zweimal vor) die Meldung:</p>
<blockquote>
<p>[C++ Warnung] LokalePC.cpp(931): W8006 const Windows__1 wird mit ComCtrls__9 initialisiert<br />
Vollständiger Parser-Kontext<br />
LokalePC.cpp(914): Analyse von: void _fastcall TForm18::frm18_lvTabelleDrawItem(TCustomListView *,TListItem *,TRect &amp;,TOwnerDrawState)<br />
[C++ Fehler] LokalePC.cpp(942): E2034 Konvertierung von 'char *' nach 'const wchar_t *' nicht möglich<br />
Vollständiger Parser-Kontext<br />
LokalePC.cpp(914): Analyse von: void _fastcall TForm18::frm18_lvTabelleDrawItem(TCustomListView *,TListItem *,TRect &amp;,TOwnerDrawState)<br />
[C++ Fehler] LokalePC.cpp(942): E2342 Keine Übereinstimmung des Typs beim Parameter 'lpString' ('const wchar_t *' erwartet, 'char *' erhalten)<br />
Vollständiger Parser-Kontext<br />
LokalePC.cpp(914): Analyse von: void _fastcall TForm18::frm18_lvTabelleDrawItem(TCustomListView *,TListItem *,TRect &amp;,TOwnerDrawState)</p>
</blockquote>
<p>Funktion (ListView ist frm18_lvTabelle):</p>
<pre><code class="language-cpp">void __fastcall TForm18::frm18_lvTabelleDrawItem(TCustomListView *Sender, TListItem *Item, TRect &amp;ARect, TOwnerDrawState State)
{try {                                                                          // Fehlerroutine Start
 Integer iSymb,iAnz,iB,iStil,iItem; AnsiString z1,z2;                           // Vars definieren
 TColor f1,f2; TCanvas *ACanvas;                                                // Vars definieren
 TListView   *LView= dynamic_cast&lt;TListView   *&gt;     (Sender);                  // Versuchen, Sender als TListView anzusprechen
 TRect CRect;                                                                   // Rect Strukt vorbereiten
 Graphics::TBitmap *bmp;                                                        // Bitmap vorbereiten

 z1     =&quot; &quot;+Item-&gt;Caption;                                                     // aktuelle Spalte
 iAnz   =Item-&gt;SubItems-&gt;Count;                                                 // Anzahl Subs
 iItem  =Item-&gt;Index;                                                           // Index ermitteln
 ACanvas=LView-&gt;Canvas;                                                         // Canvas übergeben
 f1     =clWhite;                                                               // Voreinstellung HG in ws
 f2     =clGray;                                                                // Textfarbe
 iStil  =DT_LEFT;                                                               // Ausrichtung

// if(oZugZeil==true &amp;&amp; Odd(iItem)==true) { f1=0x00EEEEEE; }                      // HG, alle 2 Zeilen hellgrau
 if(Odd(iItem)==true) { f1=0x00EEEEEE; }                                        // HG, alle 2 Zeilen hellgrau
 if(State.Contains(cdsSelected)==true)  { f1=clSkyBlue; f2=clNavy; }            // Eintrag ist selektiert

 CRect=ARect;                                                                   // Koords neu übergeben
 CRect.Right=LView-&gt;Columns-&gt;Items[0]-&gt;Width-1;                                 // Breite 1. Spalte
 ACanvas-&gt;Brush-&gt;Color=f1;                                                      // Farbe HG festlegen
 ACanvas-&gt;Font-&gt;Color =f2;                                                      // Farbe VG festlegen
 ACanvas-&gt;FillRect(CRect);                                                      // HG befüllen

 CRect      =ARect;                                                             // Koords neu übergeben
 CRect.Left+=20;                                                                // Text wegen Symbole mehr rechts
 ACanvas-&gt;Font-&gt;Name=&quot;Arial&quot;; ACanvas-&gt;Font-&gt;Size=8;                            // Schriftart
 DrawText(ACanvas-&gt;Handle,&quot;test&quot;,-1,&amp;CRect,iStil | DT_VCENTER | DT_SINGLELINE); // und beschriften

 iSymb=Item-&gt;ImageIndex;                                                        // aktuelles Symbol vorne?
 CRect.Left-=20;                                                                // Koordinate wieder abziehen
 bmp  =new Graphics::TBitmap();                                                 // neue Bitmap anlegen
 Form1-&gt;frm1_ImageList1-&gt;GetBitmap(iSymb,bmp);                                  // und aus ImageListe holen
 ACanvas-&gt;Draw(CRect.Left,CRect.Top,bmp);                                       // Checkbox zeichnen
 delete bmp;                                                                    // Bitmap löschen

                                                                                // SUBITEMS ZEICHNEN
 CRect=ARect;                                                                   // Koords neu übergeben
 for(int i1=0;i1&lt;iAnz;i1++) {                                                   // die Subs zeichnen
  z1=&quot; &quot;+Item-&gt;SubItems-&gt;Strings[i1];                                           // Spaltentext auslesen
  iB=LView-&gt;Columns-&gt;Items[i1]-&gt;Width;                                          // Breite der Spalte X
  //f1=clWhite; if(oZugZeil==true &amp;&amp; Odd(iItem)==true) { f1=0x00EEEEEE; }         // HG, alle 2 Zeilen hellgrau
  f1=clWhite; if(Odd(iItem)==true) { f1=0x00EEEEEE; }                           // HG, alle 2 Zeilen hellgrau
  f2=clBlack;                                                                   // Textfarbe
  CRect.Left +=iB;                                                              // X1-Koord neu
  CRect.Right =CRect.Left+LView-&gt;Column[i1+1]-&gt;Width-1;                         // X2-Koord neu
  iStil       =DT_LEFT;                                                         // Ausrichtung

  switch(i1) {                                                                  // welche Spalte?
  case 0:                                                                       // 01 GERÄTENAME
   f2=clBlue;                                                                   // Standard
   if(z1.AnsiPos(&quot;unbekannt&quot;)&gt;0) { f2=clRed; }                                  // Gerät unbekannt
   break;                                                                       // und fertig
  case 1:                                                                       // 02 GERÄTETYP
   f2=clBlue;                                                                   // Standard
   break;                                                                       // und fertig
  default: break;                                                               // WEITERE SPALTEN STANDARD
  }                                                                             // ende switch(i1

  if(State.Contains(cdsSelected)==true)  { f1=clSkyBlue; f2=clNavy; }           // Eintrag ist selektiert

  ACanvas-&gt;Brush-&gt;Color=f1;                                                     // Farbe HG festlegen
  ACanvas-&gt;Font-&gt;Color =f2;                                                     // Farbe VG festlegen
  ACanvas-&gt;FillRect(CRect);                                                     // HG befüllen
  DrawText(ACanvas-&gt;Handle,z1.c_str(),-1,&amp;CRect,iStil | DT_VCENTER | DT_SINGLELINE);  // und beschriften
 }                                                                              // ende for(i1

 } catch(Exception&amp; e) { MessageBox(NULL, e.Message.c_str(), &quot;TForm18::frm18_lvTabelleDrawItem()&quot;, MB_OK); }  // Fehler anzeigen
}
</code></pre>
<p>Zeile 30 und Zeile 67 meckert er; wenn ich die wegmache, dann meckert er nicht mehr, zeichnet aber (logischerweise) auch nicht mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> Die Eigenschaft OwnerDraw sitzt auf True.</p>
<p>Was will der Bub äh BCB von mir? Grübel...</p>
<p>Danke für jeden Tipp.<br />
Gruss Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1385516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385516</guid><dc:creator><![CDATA[Stefan71242]]></dc:creator><pubDate>Mon, 15 Oct 2007 12:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to DrawText geht in einer Unit nicht??? on Mon, 15 Oct 2007 12:42:58 GMT]]></title><description><![CDATA[<p>Schau dir mal die Fehlermeldungen genau an. Du scheinst in diesem Projekt Unicode aktiviert zu haben, d.h. du mußt alle Parameter als wchar_t anstatt char übergeben:</p>
<pre><code class="language-cpp">DrawText(..., L&quot;test&quot;, ...);

WideString ws = L&quot;blabla&quot;;
DrawText(..., ws.c_str(), ...);
</code></pre>
<p>P.S. Anstatt der meisten unsinnigen Kommentare solltest du besser deine Variablen aussagekräftigere Namen geben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1385548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385548</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 15 Oct 2007 12:42:58 GMT</pubDate></item><item><title><![CDATA[Reply to DrawText geht in einer Unit nicht??? on Mon, 15 Oct 2007 17:55:59 GMT]]></title><description><![CDATA[<p>Hallo Th</p>
<p>Vielen Dank für Deine Antwort. Am Anfang stand tatsächlich define UNICODE. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> War mir bis Dato unbekannt.</p>
<p>Was meine &quot;unsinnigen&quot; Variabeln betrifft, jeder hat seinen Stil <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Grüsse, Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1385855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385855</guid><dc:creator><![CDATA[Stefan71242]]></dc:creator><pubDate>Mon, 15 Oct 2007 17:55:59 GMT</pubDate></item><item><title><![CDATA[Reply to DrawText geht in einer Unit nicht??? on Mon, 15 Oct 2007 19:02:54 GMT]]></title><description><![CDATA[<p>Bzgl. des Stils solltest du daran denken, daß es schwer ist, solchen Code zu lesen und zu verstehen (trotz der Kommentare).<br />
Aber hast ja Glück gehabt, daß ich dir helfen konnte -)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1385891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1385891</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 15 Oct 2007 19:02:54 GMT</pubDate></item></channel></rss>