我做了一个进度条,是动态创建的procedure TpbForm.FormCreate(Sender: TObject);
begin
  Icon.Assign(Application.Icon);
  SetWindowPos(Self.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;  if not Assigned(pbForm) then begin
    pbForm:=TpbForm.Create(nil);
    // pbForm:=TpbForm.Create(Application);
   //Application.CreateForm();  这几种我都试了
  问题是执行到 TpbForm.Create..时程序就卡死在这句话上了
  请问各位高手
  这个问题要怎么解决啊

解决方案 »

  1.   

    我用F8一句句话的调试
    到Create这句时就下不去了
    也不报错
      

  2.   

    procedure TpbForm.FormCreate(Sender: TObject);
    begin
    //
    end;我这样了还不行啊
    是不是和系统有关系啊
    我用的是 windows2003 Delphi7
      

  3.   

    看你的代码:
    procedure TpbForm.FormCreate(Sender: TObject);
      if not Assigned(pbForm) then begin
        pbForm:=TpbForm.Create(nil);
    /////////
    你的pbForm怎么好像就是当前窗体似的?类名: TpbForm,实例名为:pbForm,是不是当前窗体全局变量pbForm啊...
    如果是的话,就会死啦...
      

  4.   

    是的
    不过在工程那里我又没创建这个窗体
    它并不是主窗体
    pbForm=nil 啊
    这样用就会死??
      

  5.   

    不行,在工程一定要创建一个窗体,而且一定要用Application.CreateForm这个文件来创建。。
    你是不是想做程序只运行一次的程序
      

  6.   

    我这个程序有好多的窗体
    这只是其中一个用动态创建的窗体 进度条走完了这个窗体就被释放掉了
    TO: GARNETT2183
      你的意思是不能用程序自动生成的那个全局变量
      而是要用局部变量吗??