AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

Ein Thema von MaBuSE · begonnen am 18. Jun 2018 · letzter Beitrag vom 4. Jun 2024
Antwort Antwort
Seite 1 von 3  1 23      
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 18. Jun 2018, 16:29
sorry will das mal testen wo kann man den laden ?
Den farbigen Font!

gruss
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 18. Jun 2018, 16:30
sorry will das mal testen wo kann man den laden ?
Den farbigen Font!

gruss
Der ist ab Windows 8.1 Bestandteil von Windows

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
Angehängte Grafiken
Dateityp: png 2018-06-18 17_31_29-.png (19,8 KB, 20x aufgerufen)
Dateityp: png 2018-06-18 17_35_18-.png (60,6 KB, 36x aufgerufen)
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)

Geändert von MaBuSE (18. Jun 2018 um 16:37 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 18. Jun 2018, 16:37
Zitat:
Der ist ab Windows 8.1 Bestandteil von Windows
Nun ich habe windows7

gruss
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 18. Jun 2018, 16:41
Zitat:
Der ist ab Windows 8.1 Bestandteil von Windows
Nun ich habe windows7

gruss
Update auf Windows 10 ?

Hier ist noch was interesanntes zum Thema von MS.
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Aber ich hatte ja die Hoffnung, das das Delphi schon kann und man es nur einschalten muss.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 18. Jun 2018, 16:44
Zitat:
Update auf Windows 10 ?
Vergiss es.. ok muss nicht sein mein Test.
Bin raus.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#6

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 18. Jun 2018, 23:41
Aber ich hatte ja die Hoffnung, das das Delphi schon kann und man es nur einschalten muss.
So ganz aus dem Stand noch nicht, aber wenn man die TDirect2DCanvas ableitet und TextOut geringfügig modifiziert:
Angehängte Grafiken
Dateityp: png 19-06-_2018_00-40-16.png (9,5 KB, 54x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#7

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 18. Jun 2018, 23:44
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 18. Jun 2018, 23:51
@Uwe.. Kurz und knapp verdient.
Das musste jetzt sein.

gruss

Geändert von EWeiss (18. Jun 2018 um 23:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 19. Jun 2018, 10:15
Aber ich hatte ja die Hoffnung, das das Delphi schon kann und man es nur einschalten muss.
So ganz aus dem Stand noch nicht, aber wenn man die TDirect2DCanvas ableitet und TextOut geringfügig modifiziert:
WOW,
danke für das Beispiel. Funktioniert gut. 👍🏻👍🏻👍🏻 🤘🏻

Der einzige Unterschied zwischen deiner TextOut und der von Embarcadero is ja nur der Parameter:

Code:
D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT             = 0x00000004
Aus
Delphi-Quellcode:
RenderTarget.DrawTextLayout(D2D1PointF(x-0.5, y-0.5), TextLayout,
    FFont.FBrush.Handle, D2D1_DRAW_TEXT_OPTIONS_NONE);
wird
Delphi-Quellcode:
  RenderTarget.DrawTextLayout(D2D1PointF(x-0.5, y-0.5), TextLayout,
    Font.Brush.Handle, 4);
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)

Viele Grüße
MaBuSE
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#10

AW: Anzeige farbiger Emoji (unicode Zeichen) mit Segoe UI Emoji Schrift in Delphi

  Alt 19. Jun 2018, 10:32
Der einzige Unterschied zwischen deiner TextOut und der von Embarcadero is ja nur der Parameter:
Faktisch ja. Durch das Überschreiben mussten noch ein paar Zugriffe von private fields auf public properties umgeleitet werden. Ich würde das aber auch lieber als Option im Originalcode unterbringen. Leider funktioniert es wohl nur ab Anniversary Update bzw. einer bestimmten Direct2D Version. Ich weiß nur noch nicht, wie man das am besten erkennen kann, denn dann würde ich einen entsprechenden Feature-Request ins QP einstellen.

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)
Vermutlich nicht. Die Controls basieren in der Regel auf GDI und wenn es hoch kommt auf GDI+. Soweit ich weiß ist dieses Feature dort aber nicht implementiert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 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