当前位置:主页>仓库管理软件> 列表

关于串口操作完后,主窗口调用的窗口无法获得焦点,困扰很久! 找工业进销存excel

销售管理软件版1楼: 程序运行过程为:
主窗口调用A窗口,A窗口关闭后,接着调用B窗口,A窗口操作时涉及到串口读写。
而现在的运行是:
当A窗口关闭后主程序自动调用B窗口时,B窗口并不能直接看到,看到的依然是主窗口窗体,在任务栏上重新点一下此程序,则B窗口可以看到,既获得了焦点,操作正常.

请各位高手指点,这到底是什么原因,先谢谢了!

2楼: 要看看你怎么创建窗口B的,如果要在窗口A中来创建的话可以写以下语句:
FormDataQuery:=TFormDataQuery.Create(Application);
try
FormDataQuery.ShowModal;
finally
FormDataQuery.Release;
end;

工程文件中Application.CreateForm(TFormDataQuery, FormDataQuery);删除


或者可以用以下语句测试以下:
FormDataQuery.bringtofront 如工业进销存excel

3楼: 一是在关闭A窗口前关闭串口试试;
二是不要关闭A窗口,把它引藏试试;

4楼: 感谢两位热心帮助,我都试了一下还是不行,再说一下:
一、是主窗口调用B窗口,调用后依然显示的是主窗口
二、串口读写好像是有线程的操作,不知是否有影响,我把串口在B窗口关闭前关了
也还是不行

5楼: 通过消息控制

6楼: 听你这样说,看来你的代码就存在一些紧耦合.可以试着用事件通知或者接口方式来解除这种紧耦合,参见
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3365316
里面我的回答