• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

如何创造一个程序在一个窗体存在时一直运行啊?

wbiyr 2004-12-23 05:00:34
如果释放了这个窗体的内存,那个程序也跟着消失。我主要是要对研华的板卡进行I/O控制。想在一个窗体程序运行时控制板卡。
...全文
54 点赞 收藏 10
写回复
10 条回复
有哥 2004年12月23日
字打多了就容易错:bool bClose;
回复 点赞
有哥 2004年12月23日
为窗体设置一个bool属性如:bool bClose();
Form1::Show()
{
bClose=false;
while(!bClose)
{
{打开端口 PortNumber}
Application->ProcessMessages();
if (iCount>60) {关闭端口;PortNumber=NewValue;iCount=0}
}
}

计时
Timer::Timer {iCount++;}

处理关闭事件
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if (!bClose)
{
bClose=true;
CanClose=false;
}
else
CanClose=true;
}

回复 点赞
wbiyr 2004年12月23日
是啊。主要是用timer组件不是很好用。就是说打开板卡之后,我想直接计时,而等计时结束变换板卡的端口。反复。这样的过程一直持续到窗体关闭
回复 点赞
csrwgs 2004年12月23日
可以在一个Timer里循环采集、处理数据
楼主用研华的板子作采集吧?
回复 点赞
wbiyr 2004年12月23日
可能是我说得不清楚。我是先打开I/O某几个端口。然后开始计时。时间一到。这些端口自动关闭,然后在打开另外一些端口(可嫩和上次的有重复)。如此反复。直到窗体被delete掉。这些控制要求从从这个窗体创键开始就执行
回复 点赞
有哥 2004年12月23日
不要把处理代码放在窗体里,在工程文件里:
TForm *Form1=new TForm1(Application);
Form1->Show();
do
{
/*
你的处理
*/
Application->ProcessMessages();

}while(Form1)
回复 点赞
wbiyr 2004年12月23日
我主要是想开始就运行它,一直到这个窗口delete掉。但是在oncreat事件中只是触发一次啊,我想一直触发它
回复 点赞
ynotgo 2004年12月23日
我理解错了

以为哪个窗口和你想做的程序不是一个呢
回复 点赞
ynotgo 2004年12月23日
不停的检测窗体所属的进程应该可以吧
象很多提取系统进程信息的小程序一样

但具体我就不知道了,没做过
回复 点赞
lihongxing2002 2004年12月23日
在窗体的close事件中,写代码,结束那个程序的进程
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2563

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告