我想在显示窗口完毕后执行一段程序,要把程序写动哪个事件里哦,请各位帮帮我!
还有,我在DLL的工程程序里创建一个TreeView时,.Create(参数)要怎么写啊?请教教我,我试过用.Create(self)不行哦,帮帮忙

解决方案 »

  1.   

    我想在显示窗口完毕后执行一段程序,要把程序写动哪个事件里哦,请各位帮帮我!
    ---------------------------------
    Re:是onClose事件中写。
    还有,我在DLL的工程程序里创建一个TreeView时,.Create(参数)要怎么写啊?请教教我,我试过用.Create(self)不行哦,帮帮忙
    ---------------------------------
    Re:用Nil
      

  2.   

    在onactivate事件里写代码。
    DLL的不知道。
      

  3.   

    我想在显示窗口完毕后执行一段程序,要把程序写动哪个事件里哦
    ----------------------------------------------------------
    如果一显示完就执行的话,完全可以放在onshow 事件里我在DLL的工程程序里创建一个TreeView时,.Create(参数)要怎么写啊?请教教我,我试过用.Create(self)不行哦
    ----------------------------------------------------------
    uses
      SysUtils,
      Classes,
      ComCtrls;{$R *.res}Procedure aaa;
    var
      TV: TTreeView;
    begin
      TV := TTreeView.Create(nil);
    end;
    如果你想TV := TTreeView.Create(Application);那么需要引用Forms
    ----------------------------------------------------------------
                 花自飘零水自流,一种相思,两处闲愁。
                   此情无计可消除,才下眉头,又上心头。
    ----------------------------------------------------------------
      

  4.   

    不行啊,我这个窗体是MDI子窗体,一创建就show了
      

  5.   

    在onactivate事件里写代码。
    在DLL中 USE SHAREMEM 试试
      

  6.   

    zwjlp(斗鸡眼的猪) 
    在project的options菜单里把你这个窗体设成Available forms就不会显示了:)
    ----------------------------------------------------------------
                 花自飘零水自流,一种相思,两处闲愁。
                   此情无计可消除,才下眉头,又上心头。
    ----------------------------------------------------------------
      

  7.   

    问题1:在onactivate事件里写代码,好象是只要窗体被激活(click,show……)就激发。不知楼主的“显示”是否如此?
    问题2:关于传递的参数建义:
          var tv:ttreeview;
          procedure methodname(arg: TComponent);
          begin
            tv:=ttreeview.create(arg);
            ...
          end;
        窗体掉用时:
          methodname(form1);
      

  8.   

    To Shiyl(云淡风清(回到梦开始的地方)) :Application是TComponent吗?
      

  9.   

    Shiyl(云淡风清(回到梦开始的地方)) 
    可是我这个窗体是DLL工程里的,没有这样的选项啊!
      

  10.   

    sunspeedzy(子秦)
    是的
     zwjlp(斗鸡眼的猪) 
    我测试了,在dll里没有办法创建MDi子窗体。期待答案
    ----------------------------------------------------------------
                 花自飘零水自流,一种相思,两处闲愁。
                   此情无计可消除,才下眉头,又上心头。
    ----------------------------------------------------------------
      

  11.   

    怎么可能没办法创建,我现在的程序就是这样的!!!可以运行,只不过我在创建完窗体后想读数据库用TreeView显示出来,问题就是窗体还没有显示完就在读数据库了,读数据库的那个过程又比较慢,造成窗体显示到一半,停了一会儿,读完数据库后才完全显示。所以我想在显示完窗体后或显示窗体前再读数据库啊!可是MDI窗体是一创建就显示的!所以我没有办法了!代码贴上,请大家帮帮忙
        conPowerSetConnect:=TADOConnection(objMainConnect);
        Application.ShowMainForm:=False;
        PowerSetFrm:=TPowerSetFrm.Create(Application);//执行完这句,窗体就显示了!!!
        PowerSetFrm.queryroot.Connection:=conPowerSetConnect;
        PowerSetFrm.queryPowerList.Connection:=conPowerSetConnect;
        PowerSetFrm.treePowerList.Items.Clear;
        PowerSetFrm.ReadTree(PowerSetFrm.treePowerList.Items.Add(nil,'主目录'),'MainFrm');//执行到这儿窗体只显示一半就进入函数了!函数执行的时间比较久,这样就造成窗体显示到一半停了一下,等函数执行完才全部显示出来.
      

  12.   

    在onShow事件后还有个onResize,可以将代码放在这里。
    在dll中创建类可以这样写:
    reeView := TreeView.Create(nil);