請問出現'variable required' 的原因? |
答題得分者是:ha0009
|
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
各位先進好!
我準備將所有字體名稱放到ComboBox1中,但是在'// error'句 compile 時出現錯誤訊息[Error] XXX.pas(779):variable required.
請各位先進指點一下出錯的原因,謝謝!
code如下:
请问出现'variable required' 的原因? 各位先进好! 我准备将所有字体名称放到ComboBox1中,但是在'// error'句 compile 时出现错误讯息[Error] XXX.pas(779):variable required. 请各位先进指点一下出错的原因,谢谢! code如下: Procedure TForm1.GetFontNames; var DC:HDC; Fonts : TStringList ; begin DC:=GetDC(handle); EnumFonts(DC,nil,@EnumFontsProc,Pointer(Fonts)); // error ReleaseDC(handle,DC); combobox1.Items.Assign(Fonts); ComboBox1.Sorted:=True; end; function TForm1.EnumFontsProc(var LogFont:TLogFont;var TextMetric:TTextMetric;FontType:Integer;Data:pointer):Integer;stdcall; begin TStrings(data).add(LogFont.lfFaceName); Result:=1; end; |
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
EnumFonts 所需的是獨立函式的位址,而你傳的是物件函式。 你可以如下改寫 function EnumFontsProc(var LogFont:TLogFont;var TextMetric:TTextMetric;FontType:Integer;Data:pointer):Integer;stdcall; begin TStrings(data).add(LogFont.lfFaceName); Result:=1; end; Procedure TForm1.GetFontNames; var DC:HDC; Fonts : TStringList ; begin DC:=GetDC(handle); EnumFonts(DC,nil,@EnumFontsProc,Pointer(Fonts)); // error ReleaseDC(handle,DC); combobox1.Items.Assign(Fonts); ComboBox1.Sorted:=True; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |