我试图在画布上绘制字体图标。我使用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;
我做错了什么?
谢谢 - 史蒂夫
答案 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
。