我的问题是这样的,我在一个线程内部处理的过程中得到一些数据,现在通过对话框显示给用户,然后想通过radio来得到用户的选择。如果我使用模式对话框,好像一个线程的对话框出来了,如果我不处理,界面的其他部分都不能处理了,所以我希望用非模式,因为我希望在用户不选择的情况下,还可以处理其他线程的界面。
现在就是,如何通过非模式对话框将用户选择的数据传递给他的父窗口,并且激发这个线程继续处理得到的数据,我看了一些贴子好象是要用到windows的消息机制,不知道对不对?如何实现,思路或者代码都可以,解决立即给分!
我是新手,请大家多多帮忙!

解决方案 »

  1.   

    试试这个行不行
    在父窗口定义一个消息处理函数,当然还要有自己的消息定义
    在非摸态窗口中使用findwindow函数找到父窗口,使用sendmessage函数向父窗口发送
      

  2.   

    const
        WM_SDFSLFJSD=WM_USER+1000;
    procedure sdfsdfsd(自己写参数);messsage WM_SDFSLFJSD;
      

  3.   

    ljp8001(ljp8001) 你好,我就是想这样的,就是下面的procedure也定义了,但是怎么调用不会啊,请帮忙稍微写详细一点好吗?解决立即给分!
      

  4.   

    用SendMessage  或  PostMessage 发送消息
    ------------------------------------
    思绪
      

  5.   

    1:
      public 
        procedure Execute(out AUsefulInfo: AnyDataType); 
      e.g.
        procedure Execute(out AUserName: string);
       
    2: 
      public
        function Execute: AnyDataType;
      e.g.
        function Execute: string;var
      f: TfrmYourForm
      UserName: string;
    begin
      f := TfrmYourForm.Create(nil);
      try
        f.Execute(UserName);
        if UserName <> '' then
          ...
      finally
        f.Free;
      end;
    end;