![]() |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Dftt! 🤔🤗🙄
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Vielleicht wird das ja noch eines Tages nachgerüstet. In UWP-Anwendungen ist es trivial. Aber 3rd-Party-Browser können es ja auch, wenn auch nicht überall. Ich frage mich wie die das machen...
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Delphi-Quellcode:
ableitet und
TDirect2DCanvas
Delphi-Quellcode:
geringfügig modifiziert:
TextOut
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Hier noch der Quelltext der Form-Unit:
Delphi-Quellcode:
unit Unit299;
interface uses Vcl.Forms; type TForm299 = class(TForm) procedure FormPaint(Sender: TObject); public end; var Form299: TForm299; implementation uses Winapi.D2D1, System.Win.ComObj, Vcl.Graphics, Vcl.Direct2D; {$R *.dfm} type TMyCanvas = class(TDirect2DCanvas) public procedure TextOut(X, Y: Integer; const Text: string); override; end; procedure TMyCanvas.TextOut(X, Y: Integer; const Text: string); var TextRange: TDwriteTextRange; TextLayout: IDWriteTextLayout; TextMetrics: TDWriteTextMetrics; begin OleCheck(DWriteFactory.CreateTextLayout(PWideChar(Text), Length(Text), Font.Handle, 0, 0, TextLayout)); TextRange.startPosition := 0; TextRange.length := Length(Text); if fsUnderline in Font.Style then TextLayout.SetUnderline(True, TextRange); if fsStrikeOut in Font.Style then TextLayout.SetStrikethrough(True, TextRange); TextLayout.SetWordWrapping(DWRITE_WORD_WRAPPING_NO_WRAP); RequiredState([csHandleValid, csFontValid, csBrushValid]); if Brush.Style <> bsClear then begin TextLayout.GetMetrics(TextMetrics); RenderTarget.FillRectangle(D2D1RectF(X, Y, X+TextMetrics.widthIncludingTrailingWhitespace, Y+TextMetrics.height), Brush.Handle); end; RenderTarget.DrawTextLayout(D2D1PointF(x-0.5, y-0.5), TextLayout, Font.Brush.Handle, 4); end; procedure TForm299.FormPaint(Sender: TObject); var FD2DCanvas: TDirect2DCanvas; begin FD2DCanvas := TMyCanvas.Create(Canvas.Handle, ClientRect); try FD2DCanvas.BeginDraw; FD2DCanvas.TextOut(10, 10, '😍😀😊😜☹😐😅😎❤😘😂😃💋💖😋😭😇🙄💩🙈🙉🙊🔞'); FD2DCanvas.EndDraw; finally FD2DCanvas.Free; end; end; end. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
@Uwe.. Kurz und knapp :thumb::thumb::thumb: verdient.
Das musste jetzt sein. gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Ich bekomme Uwes Code nicht zum laufen, auch forciert per Knopf nicht.
Es ensteht nur ein weißes leeres Rechteck. Windows: 7 Delphi: Tokyo 10.2.3 Text: die Unicode zeichen hab ich mit für mich lesbaren Text ersetzt ("Hallo Welt!") Brush.Style: solid forciert Font.Color: black forciert Window Hintergrund: blue (damit ich überhaupt bemerke das was gemalt wurde) |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Windows 7 unterstützt keine Farbigen Fonts und erzwingen kannst du da gar nichts. Verwende W10 oder mindestens W8.1 dann geht's. gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Und wo in Uwes Code geht hervor das eine Windows 8.1 aufwärts Font geladen und benutzt wird?
Oder bzw welcher Code-Teil ist Windows 8.1+ exclusive? Ich habe Font Segio UI, ob die diese Zeichen hat weiß ich nicht, ich wollte es testen dazu aber generell den Code erstmal zum laufen bringen. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Win7 vergiss es. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz