![]() |
Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Hallo,
seit 2013 gibt es die Möglichkeit in Windows die farbigen Emoji analog iPhone und Android auch unter Windows anzuzeigen. Das wird mit einer mehrfarbigen Schrift namens "Segoe UI Emoji" ab Win 8.1 umgesetzt. (siehe ![]() Wenn die Programme das unterstützen, dann wird es farbig angezeigt, wenn nicht, dann nur schwarzweiß. Die besagten Emoji sind im Unicode ab U+1F30x zu finden. In meinen Delphi Programmen (VCL) hab ich das noch nicht in Farbe hinbekommen. Unterstützt das Delphi? (Embarcadero hatte ja immerhin 5 Jahre Zeit das umzusetzen) Es geht und z.B. folgende Emoji: 😍😀😊😜☹😐😅😎❤😘😂😃💋💖😋😭😇🙄💩🙈🙉🙊🔞 (diese sind ans Text nicht als Grafik eingebunden. Die Browser können also auch mehrfarbige "Segoe UI Emoji" Schrift anzeigen.) Interesannterweise zeigen Chrome und Firefox diese Emoji in Farbe und der MS Internet Explorer 11 nur in schwarzweiß, obwohl diese Technologie mit dem Font von MS stammt 😊 Kennt jemand einen einfachen Weg diese auch in Delphi Programmen nicht nur schwarzweiß sondern auch bunt zu verwenden? Vielen Dank MaBuSE |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Über Umweg HTML?
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Hab schon fast alle Text Controlls ausprobiert. Edit, Memo, RichtEdit, TWebBrowser, cxMemo, ... Der Editor selbst zeigt sie ja auch nur zweifarbig an. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Die Windows-Schriftarten enthalten zwar die entsprechenden Farben und alles, aber ich sehe nicht einmal bei WPF Support dafür. UWPs klar, aber wenn dafür selbst in WPF Zusatz-Komponenten bemühen muss...
|
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
Die meisten Programme nutzen dafür wahrscheinlich sowas wie die Windows-Funktion ExtTextOut.
Dann wird das halt schwarz/weiß. So als wenn du du in Delphi ein Canvas.TextOut benutzt. Der Microsoft Browser Edge und neue Word-Versionen werden vermutlich während der Anzeige das ersetzen/übermalen mit fertigen ClipArts/SVGs. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Wegen Windows 7 sehe ich leider keine emoji, was passiert denn bei "Font.Color := WasAnderes;" ?
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Zitat:
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Delphi-Quellcode:
kannst Du fest legen, das die ganze Schrift in Rot dargestellt wird.
Font.Color := clRed;
Die Emoji sind aber ein Zeichen, das mit mehreren verschiedenen Farben gezeichnet wird. Und die Schrift "Segoe UI Emoji" wird ab Win8.1 mitgeliefert. Bzw. die Emoji Unterstützung. Wenn ich es richtig verstanden habe, wird automatisch das Emoji aus der Segoe UI Emoj Schrift angezeigt, wenn die ausgewählte Schrift keine eigenen Emoji hat. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
sorry will das mal testen wo kann man den laden ?
Den farbigen Font! gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Auf die Frage, wie gebe ich denn die Zeichen unter Windows 10 ein: Rechtsklick auf die Taskbar, dann "Bildschirmtastatur anzeigen (Schaltfläche)" klicken und dann erscheint neben der Uhr eine kleine Tastatur (Icon) Klick darauf und es geht die Bildschirmtastatur auf. Links neben der Leertaste ist ein Smiley. -> Draufklicken ;) Oder einfach per Copy & Paste. Ist ja normaler Text ;) |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Hier ist noch was interesanntes zum Thema von MS. ![]() Aber ich hatte ja die Hoffnung, das das Delphi schon kann und man es nur einschalten muss. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Vielleicht kann ein Umweg über ein Bild da helfen?
![]() Zitat:
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Bin raus. gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
![]() Anhang 49315 |
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:
..... nur Punkte kein Dialog oder Popup :( Hier meine Systeminfos: |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
TStaticText kann das auch nicht?
Das ist das "echte" Text-Control von Windows, was Delphi-TLabel "optimaler" und auch Transparent darstellen soll. (über DrawText/TextOut auf dem Canvas des Parents) Und TWebBrowser ist auch nur ein leicht abgespeckter Internet Explorer. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Ja, 2016 gab es das noch nicht, erst seit Ende 2017, Anfang 2018.
![]() Aber auch in vielen anderen Bereichen wie das "Ausführen..."-Dialog, Notepad oder was auch immer - Hier sind die Emojis alle farblos. Ich frage mich wie die Browser das machen, die sind ja keine UWPs... |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Delphi-Quellcode:
:idea: cBackColor, cFontColor, cOutlineColor steuern die Farbe, nur eine Vermutung. Wie die Darstellung mit Deiner Font wird, einfach mal testen, was soll schon schiefgehn. In dem Example wurden Schachfiguren als Font-Zeichen hinterlegt und User brauchte diese Zeichen als Bild.
function CharToBitmap(sFontName: String; c: WideChar; cBackColor, cFontColor, cOutlineColor: TColor;
OutlineSize: Integer; bmp: TBitmap): Boolean; |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Du brauchst andere APIs, um solche Fonts zu zeichnen.
DrawText/TextOut des GDI+ scheint nicht zu reichen. ![]() Versuch es mal mit FireMonkey :stupid: |
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
Neeeee. Stimmt nicht. :oops:
Bildschirmtastatur: Da muß man auch aufpassen, denn seit Windows 8 gibt es zwei davon und nur die Eine kann es. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Was glaubst was das hier ist? Genau Fonts mit GDI+ oops .. war ja schon raus. gruss |
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
Zitat:
Ich habe um den Font gebeten wenn man ihn mir nicht gibt nun dann muss er sich selber helfen. Mit Antworten migriere zu Win10 kann ich nichts anfangen. Das war's. gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Zitat:
|
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
Zitat:
Diese Schrift ist auch nur schwarz - weiß Darauf wollte ich hinaus. gruss |
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 22:00 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 by Thomas Breitkreuz