下载个Aspack.exe试试,我用它实验了我的一个小程序,700多K压的只有300来K了,不过发现在WIN2000下我的程序出错了:(

解决方案 »

  1.   

    1.用Api写软件
    2.用Aspack压缩,win2k下很好呀
      

  2.   

    不用vcl????太夸张了吧?那还用什么delphi?
      

  3.   

    300K还奢侈?只能不用VCL只用API了:)
      

  4.   

    用纯sdk编程吧,delphi可以做到,我贴一个示例,显示一个窗口,接受鼠标点击事件则退出,编译后才4K的可执行程序(独立的):program project;
    uses Windows;
    const Appname='Windows';
    WM_destroy=2;
    WM_lbuttonup=514;
    {$R *.RES}
    function windowproc(Window:hwnd;Amessage,wParam,IParam:Longint):LongInt;stdcall;export;
    begin
      WindowProc:=0;
      case Amessage of
      WM_destroy:
      begin
        postquitmessage(0);
        exit;
      end;
      WM_lbuttonup:
      begin
      postquitmessage(0);
      exit;
      end;
      end;
      windowproc:=defwindowproc(window,amessage,wparam,iparam);
      end;function WinRegister:boolean;
    var windowclass:twndclass;
    begin
      Windowclass.style:=cs_hredraw or cs_vRedraw or cs_NoClose;
      windowclass.lpfnwndproc:=@windowproc;
      windowclass.cbclsextra:=0;
      Windowclass.cbWndextra:=0;
      windowclass.hInstance:=Hinstance;
      WindowClass.Hicon:=loadicon(0,idi_application);
      windowclass.hcursor:=loadCursor(0,idc_arrow);
      Windowclass.hbrBackground:=hbrush(color_btnface);
      Windowclass.lpszMenuName:=nil;
      WindowClass.lpszclassName:=appname;  Result:=RegisterClass(WindowClass)<>0;
    end;function WinCreate:HWnd;
    var
     hWindow:Hwnd;
     pchartemp:pchar;
    begin
      hWindow:=CreateWindowEx(WS_EX_RTLREADING or WS_EX_Toolwindow,appname,'Sample Window',ws_OverlappedWindow,cw_UseDEfault,cw_UseDEfault,cw_UseDEfault,cw_UseDEfault,0,0,Hinstance,nil);
    if hWindow<>0 then
      begin
      pchartemp:='Samples';
      showWindow(hWindow,cmdshow);
      textout(GetWindowDC(hWindow),10,50,pchartemp,7);
      UpdateWindow(hwindow);
    end;
    result:=hwindow;
    end;var 
     amessage:tmsg;
     hwindow:hwnd;
    begin
      if not WinRegister then
        begin
    messagebox(0,'fail',nil,mb_ok);
            exit;
        end;
      hwindow:=wincreate;
      if hwindow=0 then 
        begin
    messagebox(0,'fail',nil,mb_ok);
            exit;
        end;
      while getmessage(amessage,0,0,0)do
      begin
      translatemessage(amessage);
      dispatchmessage(amessage);
     end;
     halt(amessage.wparam);
    end.
      

  5.   

    对了,把那个程序写在dpr文件里,然后可以用delphi编译。