请教,怎样在DELPHI中创建一个无窗体的可执行程序(EXE)?(150分)

  • 主题发起人 主题发起人 Aide
  • 开始时间 开始时间
A

Aide

Unregistered / Unconfirmed
GUEST, unregistred user!
1、能够使用哪些已有的控件,如Ttimer?
2、怎样使用控件的方法,事件,属性?
3、如何退出这个可执行程序?
 
新建一个程序
关闭unit1,不要保存
按 CTRL+F12 选project1
把那些代码去掉,换成你的,当你的执行完了就退出了
 
>>1、能够使用哪些已有的控件,如Ttimer?
不能用可视控件!


 
你把窗口设为不可见不是挺好的吗?
何必非得没有Form?
 
去掉 uses 中的 form
属性事件还是一样的用。代用 winapi 创建一个空窗体
postqiutmessage(0);
就可以退出程序了。即使没有窗体也要用 api 创建一个。
不要窗体也可以让程序在后台执行吗。
没有窗体控件就象没了容器的水一样。
 
任何一个普通project加上application.ShowMainForm := false.
因此所有控件都能用. 只要别在程序当中调用xxx.show就没有窗体了.
 
控制台程序
 
还有一个方法,不使用 Form ,使用TDataModule
Data module 比 form开销小很多。

控件放在data module里面

主程序需要:

var
dm:TMyDataModule;
m:MSG;

begin
dm:=TMyDataModule.Create(nil);
while(GetMessage(m,0,0,0))
begin
TranslateMessage(m);
DispatchMessage(m);
end;

dm.Free;
end
//主程序这里结束

用PostQuitMessage 退出
 
可以使用Windows API编程,Timer就用WM_TIMER消息实现
或把窗体的Visible := false;
 
同意Another_eYes,另
既然作无窗体的东西,还用delphi干吗?
 
我同意walala使用控制台应用程序,如:
program 文件名
{$apptype console}
var
...
begin
...
end.
然后进入DOS在控制台应用程序目录下输入dcc32 文件名
控制台应用程序好象不能应用控件

 
1 : 用form但不显示出来
2 : 直接用win32 sdk写winmain,winproc
先createwindow不显示出来
然后getmessage,translatemessage,dispatchmessage构造消息循环
 
使用Wincrt 程序单元进行输入输出

或新建一个程序
关闭unit1,
在 .dpr 中加入
你的代码,删掉原有的, project|options|linkerexe and dll...
中选择 一项 例include td32...

相当于tp
 
在delphi 5当中提供了console appliacation的模板,
可以使用这个模板建立一个控制台程序,在其中可以使用
ttimer
 
多人接受答案了。
 
后退
顶部