aboluo2007 发表于 2010-7-27 10:17:46

请教,两个窗体之间如何通信啊?

请教各位,我想在窗体1中做一个采集程序,当数据采集完毕之后通知窗体2处理并显示结论,其中的数据传递我已经通过全局变量方法实现了,可是我窗体2如何才知道采集是否完毕呢?窗体1如何通知窗体2呢?不知道如何实现呢?

waterx3 发表于 2010-7-27 10:57:40

delphi的话,窗体1作为窗体2的私有变量由窗体2创建,窗体1有个通讯结束的事件,窗体2响应这个事件。数据传递也不需要用全局变量了。

snoopyzz 发表于 2010-7-27 11:13:49

同样通过全局变量传递通讯状态呗~

snoopyzz 发表于 2010-7-27 11:14:09

同样通过全局变量传递通讯状态呗~

zxq6 发表于 2010-7-27 11:23:10

窗体2的处理和显示函数设置为全局,然后在窗体1里面调用这个函数就可以了。

aboluo2007 发表于 2010-7-27 18:34:30

谢谢各位,窗体1的数据是在不断周期更新的,所以我目前采用了个定时器来查询状态,勉强解决问题,可是应该有好的方法的

aboluo2007 发表于 2010-7-27 18:36:30

忘了说明,我用的是BCB,呵呵
PS:4楼上zxq6 小马哈是四川绵阳的?幸会!

ss_spark 发表于 2010-7-31 22:52:38

用 SendMessage 发送自定义的信息, 如下:

窗体1: (hDlg1)
SendMessage (hDlg2, WM_USER + 100, 1, NULL);   // wParam: 1=OK

窗体2: (hDlg2)
case WM_USER + 100:
    if (wParam == 1)
    {
      处理你的数据......
    }
    break;

skystalker 发表于 2010-8-1 02:36:43

同意楼上,窗体间可以互相发消息通信

stm8s103 发表于 2010-8-1 09:33:30

采集数据 用一个新线程或许更合适。
页: [1]
查看完整版本: 请教,两个窗体之间如何通信啊?