<?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[GDI+ Text]]></title><description><![CDATA[<p>Tach auch. Ich hänge jetzt hier schon ewig dran und hoffe hier kennt sich wer eventuell mit meinem Problem aus.</p>
<p>Habe eine Delphi Komponente für CBuilder die mit GDI+ arbeitet.<br />
Ich kann dort Smooth als Eigenschaft aktivieren, was dann grosse Auswirkungen auf die Darstellung hat.</p>
<pre><code>if FSmooth then
    begin
      Graphics.SetSmoothingMode(SmoothingModeAntiAlias);
      Graphics.SetPixelOffsetMode(PixelOffsetModeHighQuality);
    end
    else
    begin
      Graphics.SetPixelOffsetMode(PixelOffsetModeNone);
    end;
</code></pre>
<p>Ohne Smooth: <a href="http://img120.imageshack.us/img120/5493/drawtexttl7.png" rel="nofollow">http://img120.imageshack.us/img120/5493/drawtexttl7.png</a></p>
<p>Mit Smooth: <a href="http://img396.imageshack.us/img396/438/drawtext2eh6.png" rel="nofollow">http://img396.imageshack.us/img396/438/drawtext2eh6.png</a></p>
<p>Man sieht das mit Smooth der Rahmen dicker wird. Bei Ellipsen sieht man durch diesen Effekt keine Pixelkanten mehr. Das grosse Problem das ich nun habe ist das ohne Smooth die Schrift garnicht/kaum lesbar ist und mit Smooth endlich lesbar wird, aber auch so hässlich fett. Ich möchte eigentlich immer egal welcher Mode düne gut lesbare Schrift.</p>
<p>Nun habe ich unter obigen Codeschnippsel</p>
<pre><code>Graphics.SetTextRenderingHint(TextRenderingHintSystemDefault);
</code></pre>
<p>gesetzt, aber auch</p>
<pre><code>Graphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
</code></pre>
<p>Dies hatte leider und seltsamerweise beides keinerlei Auswirkungen auf die Schrift. Nur Graphics.SetSmoothingMode(SmoothingModeAntiAlias); bewirkt bei Schrift änderungen.</p>
<p>Hat eventuell irgendjemand einen Vorschlag warum die Schrift ohne Smooth unlesbar ist und wo mein Fehler liegt? Wäre echt bezaubert wenn da einer weiterhilft. <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>
<pre><code class="language-cpp">function TGPGraphics.SetSmoothingMode(smoothingMode: TSmoothingMode): TStatus;
  begin
    result := SetStatus(GdipSetSmoothingMode(nativeGraphics, smoothingMode));
  end;

  function TGPGraphics.SetPixelOffsetMode(pixelOffsetMode: TPixelOffsetMode): TStatus;
  begin
    result := SetStatus(GdipSetPixelOffsetMode(nativeGraphics, pixelOffsetMode));
  end;

  function TGPGraphics.SetTextRenderingHint(newMode: TTextRenderingHint): TStatus;
  begin
    result := SetStatus(GdipSetTextRenderingHint(nativeGraphics, newMode));
  end;

  TextRenderingHint = (
    TextRenderingHintSystemDefault,                // Glyph with system default rendering hint
    TextRenderingHintSingleBitPerPixelGridFit,     // Glyph bitmap with hinting
    TextRenderingHintSingleBitPerPixel,            // Glyph bitmap without hinting
    TextRenderingHintAntiAliasGridFit,             // Glyph anti-alias bitmap with hinting
    TextRenderingHintAntiAlias,                    // Glyph anti-alias bitmap without hinting
    TextRenderingHintClearTypeGridFit              // Glyph CT bitmap with hinting
  );
  TTextRenderingHint = TextRenderingHint;
</code></pre>
<p>BTW Es handelt sich bei der Komponente um BlockEditor von KSDEV. (Leider kein Support mehr seit einem Jahr erreichbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    />)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218078/gdi-text</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 06:02:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218078.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Jul 2008 18:44:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to GDI+ Text on Tue, 15 Jul 2008 18:44:40 GMT]]></title><description><![CDATA[<p>Tach auch. Ich hänge jetzt hier schon ewig dran und hoffe hier kennt sich wer eventuell mit meinem Problem aus.</p>
<p>Habe eine Delphi Komponente für CBuilder die mit GDI+ arbeitet.<br />
Ich kann dort Smooth als Eigenschaft aktivieren, was dann grosse Auswirkungen auf die Darstellung hat.</p>
<pre><code>if FSmooth then
    begin
      Graphics.SetSmoothingMode(SmoothingModeAntiAlias);
      Graphics.SetPixelOffsetMode(PixelOffsetModeHighQuality);
    end
    else
    begin
      Graphics.SetPixelOffsetMode(PixelOffsetModeNone);
    end;
</code></pre>
<p>Ohne Smooth: <a href="http://img120.imageshack.us/img120/5493/drawtexttl7.png" rel="nofollow">http://img120.imageshack.us/img120/5493/drawtexttl7.png</a></p>
<p>Mit Smooth: <a href="http://img396.imageshack.us/img396/438/drawtext2eh6.png" rel="nofollow">http://img396.imageshack.us/img396/438/drawtext2eh6.png</a></p>
<p>Man sieht das mit Smooth der Rahmen dicker wird. Bei Ellipsen sieht man durch diesen Effekt keine Pixelkanten mehr. Das grosse Problem das ich nun habe ist das ohne Smooth die Schrift garnicht/kaum lesbar ist und mit Smooth endlich lesbar wird, aber auch so hässlich fett. Ich möchte eigentlich immer egal welcher Mode düne gut lesbare Schrift.</p>
<p>Nun habe ich unter obigen Codeschnippsel</p>
<pre><code>Graphics.SetTextRenderingHint(TextRenderingHintSystemDefault);
</code></pre>
<p>gesetzt, aber auch</p>
<pre><code>Graphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
</code></pre>
<p>Dies hatte leider und seltsamerweise beides keinerlei Auswirkungen auf die Schrift. Nur Graphics.SetSmoothingMode(SmoothingModeAntiAlias); bewirkt bei Schrift änderungen.</p>
<p>Hat eventuell irgendjemand einen Vorschlag warum die Schrift ohne Smooth unlesbar ist und wo mein Fehler liegt? Wäre echt bezaubert wenn da einer weiterhilft. <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>
<pre><code class="language-cpp">function TGPGraphics.SetSmoothingMode(smoothingMode: TSmoothingMode): TStatus;
  begin
    result := SetStatus(GdipSetSmoothingMode(nativeGraphics, smoothingMode));
  end;

  function TGPGraphics.SetPixelOffsetMode(pixelOffsetMode: TPixelOffsetMode): TStatus;
  begin
    result := SetStatus(GdipSetPixelOffsetMode(nativeGraphics, pixelOffsetMode));
  end;

  function TGPGraphics.SetTextRenderingHint(newMode: TTextRenderingHint): TStatus;
  begin
    result := SetStatus(GdipSetTextRenderingHint(nativeGraphics, newMode));
  end;

  TextRenderingHint = (
    TextRenderingHintSystemDefault,                // Glyph with system default rendering hint
    TextRenderingHintSingleBitPerPixelGridFit,     // Glyph bitmap with hinting
    TextRenderingHintSingleBitPerPixel,            // Glyph bitmap without hinting
    TextRenderingHintAntiAliasGridFit,             // Glyph anti-alias bitmap with hinting
    TextRenderingHintAntiAlias,                    // Glyph anti-alias bitmap without hinting
    TextRenderingHintClearTypeGridFit              // Glyph CT bitmap with hinting
  );
  TTextRenderingHint = TextRenderingHint;
</code></pre>
<p>BTW Es handelt sich bei der Komponente um BlockEditor von KSDEV. (Leider kein Support mehr seit einem Jahr erreichbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    />)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1547840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1547840</guid><dc:creator><![CDATA[metzgermeister]]></dc:creator><pubDate>Tue, 15 Jul 2008 18:44:40 GMT</pubDate></item><item><title><![CDATA[Reply to GDI+ Text on Wed, 16 Jul 2008 07:41:22 GMT]]></title><description><![CDATA[<p>Ach, ich habe den Aufruf ganz vergessen.</p>
<pre><code class="language-cpp">FPath: TGPGraphicsPath;
FPath.AddString(FText, Length(FText), Family, FS, Size, R, StringFormat);
</code></pre>
<p>Hier wird nicht mit GdipDrawString, sondern GdipAddPathString gearbeitet.</p>
<p>GdipDrawString: <a href="http://www.com.it-berater.org/gdiplus/noframes/text_functions.htm" rel="nofollow">http://www.com.it-berater.org/gdiplus/noframes/text_functions.htm</a><br />
GdipAddPathString: <a href="http://com.it-berater.org/gdiplus/noframes/graphicspath_functions_A.htm" rel="nofollow">http://com.it-berater.org/gdiplus/noframes/graphicspath_functions_A.htm</a></p>
<pre><code class="language-cpp">function TGPGraphicsPath.AddString(
      string_: WideString;
      length : Integer;
      family : TGPFontFamily;
      style  : Integer;
      emSize : Single;  // World units
      layoutRect: TGPRectF;
      format : TGPStringFormat): TStatus;
  var
    gpff : GPFONTFAMILY;
    gpsf : GPSTRINGFORMAT;
  begin
    gpff := nil;
    gpsf := nil;
    if assigned(family) then gpff := family.nativeFamily;
    if assigned(format) then gpsf := format.nativeFormat;
    result := SetStatus(GdipAddPathString( nativePath, PWideChar(string_), length, gpff,
          style, emSize, @layoutRect, gpsf));
  end;
</code></pre>
<p>Ich bin immernoch am Suchen das irgendwie hinzubekommen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1548044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1548044</guid><dc:creator><![CDATA[metzgermeister]]></dc:creator><pubDate>Wed, 16 Jul 2008 07:41:22 GMT</pubDate></item></channel></rss>