全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2209
推到 Plurk!
推到 Facebook!

請問如何確定電腦有裝中文字型?

答題得分者是:歸木淡
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-17 23:01:13 IP:66.171.xxx.xxx 未訂閱
請問如何用程式確定電腦有裝中文字型? 中文字型預留字型的順序是標楷體 細明體 新細明體? 謝謝!

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-17 23:51:30 IP:59.113.xxx.xxx 未訂閱
引言: 請問如何用程式確定電腦有裝中文字型? 中文字型預留字型的順序是標楷體 細明體 新細明體? 謝謝!
讓它去找C:\WINDOWS\Fonts 這目錄下有無你要check的字型檔即可 細明體&新細明體:MINGLIU.TTC 標楷體:KAIU.TTF
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-18 00:19:51 IP:66.171.xxx.xxx 未訂閱
標楷體 細明體 新細明體 這些是和Windows 一起來的嗎? 它們是預設的字型嗎? 只要安裝中文字型就有這些嗎? 如何抓取WIndows有何種字型在內? 謝謝!
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-18 00:25:07 IP:203.204.xxx.xxx 未訂閱
您好: 參考以下方式.
procedure TForm1.Button1Click(Sender: TObject);
var
 i:integer;
 Found:Boolean;
begin
Found:=false;
for i:=0 to Screen.Fonts.Count-1 do
 begin
  if (Screen.Fonts.Strings[i]='標楷體') or
     (Screen.Fonts.Strings[i]='細明體') or
     (Screen.Fonts.Strings[i]='新細明體') then
     begin
      Found:=true;
      break;
     end
 end;
if (Found) then ShowMessage('有中文字型!')
           else ShowMessage('沒有中文字型!');
end;
中文版Windows內建就有新細明體,細明體,標楷體. Screen.Fonts.Strings從這裡就可以得到系統中有哪些的字型. 發表人 - supman 於 2005/04/18 00:28:09
歸木淡
中階會員


發表:1
回覆:49
積分:75
註冊:2005-09-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-07 01:09:20 IP:68.63.xxx.xxx 未訂閱
對於一些非繁體系統, 即使沒有細明和楷體, 裝有unicode碼的ms mincho和arial也能正常顯示中文. Type pEnumLogFontEx= ^tagENUMLOGFONTEX; var GetFontListTemp: string; function EnumFontfamiliesProc2(p1: pEnumLogFontEx; p2:pointer;fontype:dword;lp:lparam):integer;stdcall; var s: string; begin s:=p1^.elfLogFont.lfFaceName; if GetFontListTemp='' then GetFontListTemp:=s else GetFontListTemp:=GetFontListTemp '; ' s; result:=1; end; function GetFontList(cs: tfontcharset): string; var a: tagLogFont; begin GetFontListTemp:=''; a.lfCharSet:=cs; a.lfFaceName:=''; a.lfPitchAndFamily:=0; EnumFontFamiliesEx(getdc(0),a,@EnumFontfamiliesProc2,0,0); result:=GetFontListTemp; end; GetFontList(CHINESEBIG5_CHARSET)即可找到所有繁體中文字.
系統時間:2024-03-28 21:50:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!