创建form1时同时创建了form2,form2为不可视,然后执行了一个线程,这个线程执行了一个过程,修改了form2上面Tlistbox的item,然后我在form1中执行 form2.show;提示出错‘无效的窗体句柄’,关掉form1时也要提示这个错误因为必须要在线程中给form2的Tlistbox加入记录,怎么解决这个问题呢??各位大哥帮帮忙啊~ 感激不尽

解决方案 »

  1.   

    线程中还执行了ADO相关操作, use ActiveX 执行过CoInitialize(NIL); 有关系吗?
      

  2.   

    你是修改的,Tlistbox的Item,还是ListboxXX的Item?
      

  3.   

    这个过程是在unit1中定义的,由线程调用
    procedure Tform1.loadcfg;
     begin
      with cfgquery do
       begin
        sql.Text:='select billing_cycle_id from local_dailypic_billing_cycle';
        open;
        form2.suiListBox1.Items.Clear;
        first;
        while not eof do
         begin
          form2.suiListBox1.Items.Add(fieldbyname('billing_cycle_id').AsString);
          next;
         end;                        //取默认当前账期
         sql.Text:='select billing_cycle_id from app_billing_cycle';
         open;
         form2.billing_choose:=fieldbyname('billing_cycle_id').AsString;   end;
      

  4.   

    我自己解决了,在线程调用时用synchronize(form1.loadcfg);即可,不能直接运行,可惜没有办法给自己分 ;-)