我試圖在符號對話框中將Microsoft Word中顯示的Wingdings字體中的符號打印爲字符代碼129至138(在圓圈中爲'1'至'10')和140到149(黑色圓圈中的白色'1'到'10'),但只有那些'1',白色'2',白色'4'&白色'5'正確顯示,其他符號出現在打印列表中覆蓋位置1至20顯示爲矩形。訪問Wingdings字體中的符號
下面的代碼按照Delphi 5和Rave Reports 4.0(pre-Unicode)的預期工作,但是按照Delphi 10.1和Rave 11.0.12的描述失敗;
with Sender as TBaseReport do
begin
PushFont;
SetFont('Wingdings', 10);
FontCharSet := SYMBOL_CHARSET;
if NoteNo < 11 then
{0 - 10 = white (0) - (10).}
PrintTab(char(128 + NoteNo))
else
if NoteNo < 21 then
{11 - 20 = black (1) - (10).}
PrintTab(char(128 + 1 + NoteNo))
else
我認爲現在是在Unicode的時代,我沒有通過正確的字符集步進,但由於我的一部分無知,我不知道我應該如何改變這種代碼,使得正確的符號訪問。
一些閱讀: [德爾福統一人口遷移:來自前線的故事和建議](https://www.embarcadero.com/images/dm/technical-papers/delphi-unicode-migration.pdf)。 –
謝謝。我將對此感興趣(並將其添加到我的收藏夾列表中,以備我需要再次參考)。 –