要减小可执行文件大小,与dfm无关的。与uses到的单元有关!
要减小可执行文件大小!如下:
1,使用api来编程啊!
2,在uses中少用一些控件类,如dialogs等。
2,使用delphi6来编绎。
3,要使用资源,加{ $r xxx.res}
现在,附上一个程序,猜猜看,它要多少K?注意,把它拷贝下来,
保存为project3.dpr 文件,再用D6来编绎,如果用D5来编绎,可
执行文件可就要达到16K!
如果你给它的uses加上个dialogs,然后
再加上一行showmessage('ok'),再来看看,可执行文件达到多少?
几百K的!这时,照样没有DFM,可见,文件大小不在于有没有DFM,而
在于 uses中的一些单元!
program Project3 ;
uses
windows,
messages,
sysutils,
shellapi;
var cls :twndclass;
wnd:hwnd;
msg:tmsg;
procedure dummywindowproc(hwnd:hwnd;msg,
wparam:dword;lparam:longint);stdcall;
begin
if msg=wm_destroy then postquitmessage(0);
if msg=wm_lbuttondown then postquitmessage(0);
defwindowproc(hwnd,msg,wparam,lparam);
end;
begin
FillChar (cls, sizeof (cls), 0);
with cls do begin
lpfnWndProc := @DummyWindowProc;
hInstance := hInstance;
lpszClassName :='AppName';
hbrBackground :=19;
style :=cs_hredraw or cs_vredraw;
hcursor:=loadcursor(0,idc_arrow);
end;
RegisterClass (cls);
Wnd := CreateWindow (cls.lpszClassName ,' AppName',
ws_OverlappedWindow,
100,100,300,300,
0, 0, hInstance, Nil);
showwindow(wnd,cmdshow);
while getmessage(msg,0,0,0) do
begin
translatemessage(msg);
dispatchmessage(msg);
end;
end.