線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2740
推到 Plurk!
推到 Facebook!

請問出現'variable required' 的原因?

答題得分者是:ha0009
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-05 11:31:37 IP:219.145.xxx.xxx 未訂閱
各位先進好!  我準備將所有字體名稱放到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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-05 11:42:52 IP:61.30.xxx.xxx 未訂閱
你好:
    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;
系統時間:2024-11-25 2:56:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!