Delphi - 绘制Unicode字符?

时间:2016-05-10 18:43:29

标签: delphi unicode

我试图在画布上绘制字体图标。我使用Ionicons字体。我得到的只是屏幕上的一个矩形。

var
  x1, y1: integer;
  xChr: WideChar;
begin

  x1 := 10;
  y1 := 10;

  fMaleIcon := $f202;
  fFemailIcon := $f25d;

  if xRep.Male then
    xChr := Char(fMaleIcon)
  else
    xChr := Char(fFemaleIcon);

  xCanvas.TextOut(x1, y1, xChr);
end;

我做错了什么?

谢谢 - 史蒂夫

1 个答案:

答案 0 :(得分:3)

空矩形表示您使用的字体不包含这些字符的字形。你必须使用的字体。

您的代码相当令人费解。我会这样写:

var
  xChr: Char;
begin
  if xRep.Male then
    xChr := #$f202;
  else
    xChr := #$f25d;

  xCanvas.TextOut(10, 10, xChr);
end;

或者也许:

const
  GenderChars: array [Boolean] of Char = (#$f25d, #$f202);
....
xCanvas.TextOut(10, 10, GenderChars[xRep.Male]);

您可能希望声明一个枚举类型来保存您的性别信息,而不是Boolean