<?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[Problem mit DC]]></title><description><![CDATA[<p>Hi.</p>
<p>ich habe eine freie Labelkomponente die man um 360° drehen kann, leider zeichnet diese nicht nur auf der TForm sondern auch auf dem Desktop (winXP/CBuilder5) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Ich denke mal das <strong>DC := GetDC(0);</strong> ist dafür verantwortlich, weil 0 der Desktop ist, aber was muss ich dann dort eintragen damit es nicht mehr parallel auf dem Desktop dargestellt wird?</p>
<p>Quelle: <a href="http://www.micrel.cz/delphi/download/jblabel3d.zip" rel="nofollow">http://www.micrel.cz/delphi/download/jblabel3d.zip</a></p>
<pre><code>StrPCopy(cStr,aTxt);
  DC := GetDC(0);
  hSavFont := SelectObject(DC,Font.Handle);
  {$IFDEF WIN32}
  GetTextExtentPoint32(DC,cStr,Length(aTxt),Size);
  {$ELSE}
  GetTextExtentPoint(DC,cStr,Length(aTxt),Size);
  {$ENDIF}
  SelectObject  (DC,hSavFont);
  ReleaseDC(0,DC);
</code></pre>
<p>Kann mir da jemand weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176909/problem-mit-dc</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 05:40:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176909.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Mar 2007 10:03:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 10:03:11 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>ich habe eine freie Labelkomponente die man um 360° drehen kann, leider zeichnet diese nicht nur auf der TForm sondern auch auf dem Desktop (winXP/CBuilder5) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Ich denke mal das <strong>DC := GetDC(0);</strong> ist dafür verantwortlich, weil 0 der Desktop ist, aber was muss ich dann dort eintragen damit es nicht mehr parallel auf dem Desktop dargestellt wird?</p>
<p>Quelle: <a href="http://www.micrel.cz/delphi/download/jblabel3d.zip" rel="nofollow">http://www.micrel.cz/delphi/download/jblabel3d.zip</a></p>
<pre><code>StrPCopy(cStr,aTxt);
  DC := GetDC(0);
  hSavFont := SelectObject(DC,Font.Handle);
  {$IFDEF WIN32}
  GetTextExtentPoint32(DC,cStr,Length(aTxt),Size);
  {$ELSE}
  GetTextExtentPoint(DC,cStr,Length(aTxt),Size);
  {$ENDIF}
  SelectObject  (DC,hSavFont);
  ReleaseDC(0,DC);
</code></pre>
<p>Kann mir da jemand weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252775</guid><dc:creator><![CDATA[Delphi]]></dc:creator><pubDate>Mon, 26 Mar 2007 10:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 10:13:23 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Im Builder haben die von TControl abgeleiteten Klassen die Eigenschaft Handle, die das notwendige WinAPI-Handle zurückgibt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252777</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 26 Mar 2007 10:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 10:22:37 GMT]]></title><description><![CDATA[<p>Wenn ich es in <strong>DC := GetDC(Handle);</strong> abändere und Komponenten compiliere, meint er Fehler: Unbekannter Bezeichner Handle. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252786</guid><dc:creator><![CDATA[Delphi]]></dc:creator><pubDate>Mon, 26 Mar 2007 10:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 10:25:33 GMT]]></title><description><![CDATA[<p>Habs mit <strong>GetDC(Application.Handle)</strong> probiert und er compiliert es Fehlerfrei, aber die Anzeige auf dem Desktop ist trotzdem immernoch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252788</guid><dc:creator><![CDATA[Delphi]]></dc:creator><pubDate>Mon, 26 Mar 2007 10:25:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 10:30:36 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Okay Handle wird erst bei TWinControl eingeführt, TLabel ist aber nur von TControl abgeleitet. Das heißt du hast so einfach keinen einfluß auf das Zeichenverhalten von TLabel. Du müßtest von TLabel ableiten und die Zeichenmethode überschrieben oder gleich eine neue Komponente erstellen und alles selber machen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252789</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 26 Mar 2007 10:30:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 10:46:51 GMT]]></title><description><![CDATA[<p>Also zeichnet tut er es ja selbst, da die 360° Funktion enthalten ist. <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="😕"
    /></p>
<pre><code>TLabel3D = class(TCustomLabel)
</code></pre>
<pre><code>{==========================================================================}
procedure TLabel3D.DrawAngleText(aCanvas:TCanvas;aRect:tRect;aAngle:Integer;aTxt:String);
{==========================================================================}
{ Draw text with FontIndirect (angle -&gt; escapement)                        }
{--------------------------------------------------------------------------}
var LFont             : TLogFont;
    hOldFont, hNewFont: HFont;
begin
  CalcTextPos(aRect,aAngle,aTxt); // Code aus Post #1

  GetObject(aCanvas.Font.Handle,SizeOf(LFont),Addr(LFont));
  LFont.lfEscapement := aAngle*10;
  hNewFont := CreateFontIndirect(LFont);
  hOldFont := SelectObject(aCanvas.Handle,hNewFont);

  aCanvas.TextOut(aRect.Left,aRect.Top,aTxt);

  hNewFont := SelectObject(aCanvas.Handle,hOldFont);
  DeleteObject(hNewFont);
end;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1252806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252806</guid><dc:creator><![CDATA[Delphi]]></dc:creator><pubDate>Mon, 26 Mar 2007 10:46:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 10:55:21 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du kannst natürlich auch einfach die Handle-Eigenschaft des Canvas-Objektes nehmen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252817</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 26 Mar 2007 10:55:21 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 11:11:36 GMT]]></title><description><![CDATA[<p>Das eine gute Idee nur dann passiert was ganz komisches, statt oben links ist es dann unten links über der Taskleiste die Schrift und in der TForm ist die Schrift garnicht mehr, sondern Löcher und die Form &quot;wackelt&quot; gehe ich im Programm wohin wo nicht diese Label sind ist alles normal. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252832</guid><dc:creator><![CDATA[Delphi]]></dc:creator><pubDate>Mon, 26 Mar 2007 11:11:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit DC on Mon, 26 Mar 2007 11:48:00 GMT]]></title><description><![CDATA[<p>Delphi schrieb:</p>
<blockquote>
<p>Habs mit <strong>GetDC(Application.Handle)</strong> probiert und er compiliert es Fehlerfrei, aber die Anzeige auf dem Desktop ist trotzdem immernoch.</p>
</blockquote>
<p>Ist auch Quatsch, da das Application-Fenster ein maximiertes &quot;durchsichtiges&quot; Fenster ist. Versuch mal mit <strong>GetDC(Parent.Handle)</strong>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252870</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Mon, 26 Mar 2007 11:48:00 GMT</pubDate></item></channel></rss>