delphi - 将 TDirect2DCanvas 与 Font Awesome 图标一起使用
问题描述
我正在用 Delphi XE 10.2 编写一个应用程序,它使用Direct2D 画布和Font Awesome 图标。GDI 画布正确显示,而 Direct2d 画布显示字母数字字符,但不显示图标 (Hexcode >= $f000)。取而代之的是经典矩形。有人可以告诉我原因吗?谢谢,恩佐
这是我的代码:
procedure TForm1.Button2Click(Sender: TObject);
var
D2DCanvas: TDirect2DCanvas;
Ch: Char;
begin
Ch := Char($F4BA);
Canvas.Font.Assign(Self.Font);
Canvas.Font.Name := 'Font Awesome 5 Free Solid';
Canvas.Font.Color := clHotLight;
D2DCanvas := TDirect2DCanvas.Create(Canvas, Rect(0, 0, Width, Height));
try
D2DCanvas.Font.Assign(Self.Font);
D2DCanvas.Font.Name := 'Font Awesome 5 Free Solid';
D2DCanvas.Font.Color := clHotLight;
D2DCanvas.BeginDraw;
try
D2DCanvas.TextOut(10, 50, '(Direct2D): ' + Ch);
finally
D2DCanvas.EndDraw;
end;
finally
D2DCanvas.Free;
end;
Canvas.TextOut(10, 150, '(GDI): ' + Ch);
end;
解决方案
推荐阅读
- r - 使用 ggplot2 绘制时间序列图
- python - 如何使用正则表达式在 Python 中的目录中查找文件名
- apache-spark - Spark加入两个大表并存储在Hive中
- android - VTS 套件因异常而无法运行
- spring-boot - 使用 Spring Cloud DataFlow 在无限运行的应用程序中编排长时间运行的外部批处理作业是否合适?
- c++ - 检测网络接口变化
- sql - SQL在ORACLE中只用in子句更新一行
- c# - 意外的 XML 声明。XML 声明必须是文档中的第一个节点
- json - 使用 jq 进行大小写转换时出现错误“爆炸输入必须是字符串”
- php - 安装 Bitexchange 脚本时在浏览器中获取 PHP 代码