![]() |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Erklörbör:
Uwe's code basiert auf Direct2d. Dies unterstütz ColorFonts ab Windows 10 Anniversary Update (hier nach zu lesen: ![]() Außerdem brauchst du den Font Segoe UI Emoji. Dieser wird aber erst ab 8.1 mitgeliefert. Ergo: Win 7 is nich :) |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Oh, einfach nur so, und dann noch so.
Von wem hätte die Lösung sonst kommen sollen 👍 |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Delphi-Quellcode:
Ich liebe es, wenn die Meister mit ähnlichem Wasser kochen wie ich. :mrgreen:
Form299
Sherlock |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Das es am Ende einfach nur das Flag
Code:
ist. :shock:
D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT = 0x00000004
Das erklärt auch das unterschiedliche Verhalten von Microsoft-Anwendungen. Endweder nutzen sie noch alte GDI/GDI+-Schnittstellen oder verwenden nicht D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT in den IRenderTarget.DrawText...-Methoden. Neuere Anwendungen wie Edge und Word unterstützen dann natürlich die neueren Möglichkeiten der Schnittstelle. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Hmm..
Ich glaube für die Emoji Fonts gibt es für W7 ein MS-Update: ![]() Habs nicht ausprobiert.. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Man muss den Font offenbar gar nicht explizit auswählen. Hier der Vollständigkeit halber noch die DFM-Datei des Forms. Ich habe lediglich die Form.Color auf weiß gesetzt. Vermutlich kann man aber wohl auch einfach den D2DCanvas.Brush.Style auf bsClear setzen.
Delphi-Quellcode:
object Form299: TForm299
Left = 0 Top = 0 Caption = 'Form299' ClientHeight = 299 ClientWidth = 635 Color = clWindow Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnPaint = FormPaint PixelsPerInch = 96 TextHeight = 13 end |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Ich verstehe das so:
Die Schrift ist egal, es kommt darauf an, ob die zu zeichnende API Color Fonts unterstützt. Ghostwalker hat weiter oben ja schon den passenden MSDN-Eintrag dazu verlinkt. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Leider wird auch kein Fallback ausgeführt, so daß der Parameter 4 in diesem Fall zu einer falschen Ausgabe (eben gar keiner) führt. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Danke für diese Erklärungen was Windows 7 inkompatibilität angeht. Das Color-Fonts nicht arbeiten das war mir ja schon irgendwie bewusst, das nun gar nichts hinten rauskommt mit Windows 7, also auch wenn ich nur Text eingebe, das war mir unbegreiflich.
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Zitat:
und auch von selber macht das Windows schon seit langem, z.B. kannst du fast mit jedem Font chinesisch schreiben, auch wenn fast kein Font dafür die Zeichen besitzt. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
danke für das Beispiel. Funktioniert gut. 👍🏻👍🏻👍🏻 🤘🏻 Der einzige Unterschied zwischen deiner TextOut und der von Embarcadero is ja nur der Parameter:
Code:
Aus
D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT = 0x00000004
Delphi-Quellcode:
wird
RenderTarget.DrawTextLayout(D2D1PointF(x-0.5, y-0.5), TextLayout,
FFont.FBrush.Handle, D2D1_DRAW_TEXT_OPTIONS_NONE);
Delphi-Quellcode:
Geht das nur mit Direct2D oder könnte man das auch generell in der VLC für alle Controls anschalten. (z.B. via ClassHelper oder ähnliches)
RenderTarget.DrawTextLayout(D2D1PointF(x-0.5, y-0.5), TextLayout,
Font.Brush.Handle, 4); Viele Grüße MaBuSE |
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:
Vielen Dank für die Infos. 👍🏻👍🏻👍🏻 🤘🏻 |
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:
Zitat:
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
1. Es ist überhaupt kein Farbiger Font. 2. Es sind 2 geobats.ttf, celeb_faces.ttf und keiner ist auch nur im entferntesten Farbig wenn man von Schwarz, weiß absieht. 3. USA aus geobats habe ich so eingefärbt ARGB(225,RGB(65,128,32)), Obama ARGB(255, RGB(92,48,6)), HalleB ARGB(255, RGB(255,192,32)) 4. Wenn man davon ausgehen würde dann wäre es schon ein 2 Farbiger nämlich Obama ARGB(255, RGB(92,48,6)) HalleB ARGB(255, RGB(255,192,32)) weil beide aus dem gleichen Font celeb_faces.ttf aber selber eingefärbt. Wie schon gesagt ich kann die Fonts selbst einfärben dafür brauche ich kein W10. So kann man sich täuschen. gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Emil, melde Dich nochmal, wenn Du es schaffst in einem Schriftzeichen mindestens zwei verschiedene Farben unterzubringen. ;)
Denn darum geht es hier. Die dargestellten Emoji haben zB rote Lippen, weiße Augen, gelbe Gesichter und schwarze Konturen. Flächig gefärbte Schriftzeichen kann in der Tat jeder mindestens seit WfW(*). Sherlock (*) Windows for Workgroups |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Werde mich mal drangeben reicht ein Gradient oder muss es mehr sein? gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
ot
Für non-W10 gibt es ja auch noch die Möglichkeit mit Bitmap-Fonts zu arbeiten, 16,7mio Farben sollten da wohl ausreichen. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Der Thread nimmt eine nicht-konstruktive Wendung. :(
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Bitte entweder zum Thema zurückkommen oder wir machen den Thread dicht!
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich vermute Du möchtest es nicht verstehen. Ich erklär es trotzdem noch mal: Es geht um die bunten Zeichen, die man auch vom Smartphone her kennt. z.B.:😍 Das ist ein Zeichen (Unicode U+1F60D) und beinhaltet die Farben: schwarz, gelb, rot und weiß Ich vermute, der Browser zeigt das unter Win7 nicht in Farbe an, deswegen hänge ich ein Screenshot dran. Hier noch weitere Beispiele: (Das sind keine Grafiken, das sind mehrfarbige Unicode Zeichen) 😱 🤡 👨 👩 🙈 🙉 🙊 🌈 💘 💖 🔞 🇩🇪 👍 🤘 |
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:
Eine gute Quelle um die Unterschiede der verschiedenen Smartphones / Betriebsysteme zu sehen ist auch: ![]() Wir reden hier von dem Bild was unter Microsoft abgebildet ist ;) Wenn ich mit meinem iPhone die delphipraxis ansehe, sehe ich natürlich die Apple Emoji. |
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:
Grüße Klaus |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Da Firefox für mehrere Plattformen verfügbar ist, wird man hier nicht auf Funktionen von Windows setzen.
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Oder wir reden aneinander vorbei. Ich lade deinen Font welches Zeichen sollte egal sein. Jetzt habe ich dein Dieses Zeichen wird von Text zu einem Bitmap konvertiert die Funktion dafür habe ich schon fertig.
Delphi-Quellcode:
GD_CreateBitmapFromText('h', TTFCaption, PWidechar(FontCaption), -320, gSprCtrl.GD_ColorARGB(255, RGB(255,192,32)), 0);
TTFCaption pointer zum Font FontCaption PWideChar FontName Fontsize -320 (abs) Negativer wert.. damit schalte ich den Rechteckigen Hintergrundbereich aus. So! Was hindert mich nun daran dieses Zeichen einzufärben so wie ich es will. Über ein vordefiniertes Array mit Outline, Path, GetPixel und was es nicht noch gibt um die Konturen zu ermitteln damit ich weis was\wo dementsprechend eingefärbt werden soll. Ich behaupte immer noch das es möglich ist wenn auch nicht gerade mit wenig aufwand. Aber wenn die Funktion einmal steht kann ich sie für alle Privaten Fonts verwenden. gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Aber er will doch die fertigen Emojis nutzen - mit den Farben, wie sie vom jeweiligen System eben dargestellt werden. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Weil es scheinbar einige Leute gibt die mich für verrückt halten. Ok habe meinen Standpunkt klar gemacht und verstehe um was es eigentlich in diesem Thread geht. Deshalb halte ich mich nun etwas zurück werde aber an einer Lösung dafür arbeiten. gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
So, nun dazu auch der passende Feature-Request:
![]() |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Was ich jetzt noch nicht ganz verstanden habe: Es wäre weiterhin natürlich einiges an Aufwand (falls überhaupt realistisch) das in die Komponenten wie
Delphi-Quellcode:
oder
TEdit
Delphi-Quellcode:
zu packen denn diese nutzen überhaupt erstmal gar kein Direct2D.
TMemo
|
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Ich könnte mir allenfalls vorstellen, daß sowas mit einem speziellen VCL-Style realisierbar wäre. |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
TEdit und TMemo werden ja Ownerdrawn mit dem VCL-Styles von daher denke ich das es möglich wäre auch ohne Anpassung der CommCtrl gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Nur macht es wenig Sinn das Rad neu zu erfinden, wenn es schon erfunden wurde. (Es seiden als Hobby zum Spaß, wenn man zu viel Zeit hat ;) ) Meines Wissens gibt es 4 gebräuchliche verschiedene MultiFont Systeme.
Es gibt mehrere mehrfarbige Fonts z.B.: ![]() ![]() ![]() ![]() Wenn man wissen will welche Zeichen es so alles gibt, kann man hier nachschauen: ![]() Bzw. hier im Unicode, wo sie definiert sind. Erfahrungsgemäß werden die hier definierten Emoji auch von den Herstellern "einheitlich" Implementiert. So ist sichergestellt, wenn ein Benutzer auf dem iPhone einen "😍" verwendet, das es auch auf dem Android Handy richtig erscheint. ![]() Mir geht es in dieser Diskussion darum, auch diese Unicode Zeichen welche ich von einem Smartphone erhalte unter Windows in den eigenen Anwendungen "richtig" (ihn bunt) darzustellen. Das ist alles :stupid: @EWeiss: Wenn Du dich da wirklich reinlesen willst schau Dir mal die Spezifikation von MS an: ![]() Wer weiß, vielleicht schaffst Du es ja tatsächlich ein TColorFontMemo zu schreiben. :thumb::thumb::thumb: |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Ich mache ich einen neuen Thread dafür auf. gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Liste der Anhänge anzeigen (Anzahl: 2)
Auf Wunsch hier ein Beispiel Programm.
Grundlage ist der Code von Uwe weiter oben ;) Ich verwende Delphi 10 Seattle und Windows 10 |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Zitat:
Zum reinschauen ist es schon mal gut und ja ich weiß das es unter Windows 7 nicht funktioniert. Was ich damit sagen will hab kein W10 und auch kein Seattle ;) gruss |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Hmm..
ich hatte ja mal auf diesen Link hingewiesen: Zitat:
Zitat:
Habe hier nur Win8.1 und kann es somit nicht testen... |
AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Ja habe ich versucht das bringt gar nichts nur in Verbindung mit Office :) also ein fix dafür.
Ich habe den Fix installiert. EDIT: Zitat:
![]() gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 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