format('%s,%d bytes',[temps,getfilesize(temps)]);
这一句出现了错误:[Error] Unit1.pas(302): E2010 Incompatible types: 'Cardinal' and 'string'
我不知道是哪个参数错了,这里面好象没有Cardinal类型吧~
这个是getfilesize的代码:function getfilesize(const filename:string):longint;
var
searchrec:Tsearchrec;
begin
if findfirst(expandfilename(filename),faanyfile,searchrec)=0 then
result:=searchrec.Size
else result:=-1
end;帮我改改~谢谢了

解决方案 »

  1.   

    俺这貌似跑起来么有问题...俺试了 temps 是string 和 array[0..15] of char 都OK , 啊是其他地方出错了哦~~?
      

  2.   

    额~那为什么我这不行咧~你是什么版本?
    我干脆把那一段代码都贴出来吧~procedure TChildForm.FileListBox1Change(Sender: TObject);
    var
      temps:string;
    begin
    with filelistbox1 do
    begin
    createcaption;
    if (itemindex>=0)and(not hasattr(filename,fadirectory))then
    begin
    temps:=filename;
    mainform.StatusBar1.Panels.Items[1].Text:=
    format('%s,%d bytes',[temps,getfilesize(temps)]);
    end
    else
    mainform.StatusBar1.Panels.Items[1].Text:='';
    end;end;
      

  3.   

    getfilesize和Windows.pas单元中的GetFileSize重名,建议换一个函数名。
      

  4.   

    delphi7下通过,没问题
    procedure TForm1.FormCreate(Sender: TObject);
    var
      str,temps:string;
    begin
      temps :='d:\aa.txt';
      str := format('%s,%d bytes',[temps,getfilesize(temps)]);
      showmessage(str);
    end;