use windows.pas
直接调用
用FmtStr也一样.

解决方案 »

  1.   

    wspintf(buffer,'%d',[15]); 那么 buffer='15'
    和C中的格式一样
      

  2.   

    我用的是Delphi5,Wsprintf只有两个参数,函数原型是这样的:
       Wsprintf(Output: PChar; Format: PChar);
    你的方法根本行不通!
      

  3.   

    好象没有办法使用wsprintf,因为Delphi好象不支持类似int wsprintf(LPTSTR lpOut, LPCTSTR lpFmt, ...);这样的C/C++语言格式。
    但是,为什么不使用FmtStr或Format呢?
      

  4.   

    因为我想象C中Wsprintf("%08d", 12)一样格式化出具有前导零的字符串,我想Delphi中既然有这个原型,应该是能使用的。
      

  5.   

    我试了一下,未遂:(,
    随便传了值,程序竟然崩溃了,我又不想跟进去:)
    如果你只是想弄几个前导0 可以这样 FormatFloat('00000000',12);
    如果你一定要用wsprintf,等你知道如何用了别忘了告诉我,
    我怀念C中的sprintf :)
      

  6.   

    如果仅仅为了前导0,可以这样str := Format('%.8d', [12]),将会有6个前导0。
      

  7.   

    我编程也遇到这个问题,请问最后是如何解决的?前面Lin的回复不能用在0比较多的时候,如'%.20d'。
      

  8.   

    用wvspintf() API代替!一切问题解决!
      

  9.   

    var
      buf:array[0..100] of char;
      str:array[0..20] of char;
    begin
      strpcopy(str,'2');
      wvsprintf(buf,'%020d',str);
      caption:=buf;
    end;