delphi7.0作了一个程序,登陆界面进去时,在下面的任务栏上显示一个程序在运行,之后进入主界面,结果在下面任务栏又出现一个相同的一模一样的程序显示在任务栏里面(其实是一个程序,进程中也显示是一个程序);之后,按主程序,可以最小化到任务栏(并同时存在二个相同的最小化程序显示),但同时在左上角也有一个最小化的窗口,按任务栏中最小化第一个程序(这个是登陆窗口形成的最小化到任务栏的程序,可以最大化,但是不能最小化);按任务栏中最小化第二个程序(这个是登陆进主界面后形成的最小化到任务栏的程序,可以最大化,也可以最小化);现在找不到北了,不知问题出在编译的什么地方,有知道的朋友告知一下,急!

解决方案 »

  1.   

    楼上说的不错,登陆完成后,loginfm.colse;
      

  2.   

    每个窗体显示时都有模式的,如是child还是main模式,可能跟这个有关。
      

  3.   

    哪个是主form,另一个是以什么方式被创建、显示的?
      

  4.   

    用close也没有用,主窗体是登陆窗体,有知道的朋友或碰过的朋友指点一二下,所有都完了就差这点BUG了
      

  5.   

    原来是这个函数在起作用,SetWindowLong(Handle,GWL_EXSTYLE,GetWindowLong(Handle,GWL_EXSTYLE) or WS_EX_APPWINDOW);这个函数本来的目的是为了使进入主窗体后,主窗体按最小化,窗体能最小化到任务栏,而不是在桌面的左上角也有一个最小化的图标,但是前几个程序都是这样用的,并没有出现这样的问题,为何这个程序这样用就会出现这样的问题,现在虽则这个问题解决了(把这么删除),但是又出现了一个主窗体最小化后在桌面左上角上遗留下最小化图标的问题,这个冲突是在那里,有知道的朋友能讲一下吗。以上急盼解
      

  6.   

    知道這樣了,為什麼要還要用 CreateForm  建立LOGIN作為主窗體呢??為什麼不用  With TfrmLog.create  ?
      

  7.   

    starluck不知你这一句话怎样的理解,是不是把主界面的窗体设置为主窗体,而登陆窗体只是动态创建,一进入主界面之后就关了登陆窗体,那在这里应是怎样的写,还请指点一二,网上刚查了一下,也没有这相关的资料:
    {$R *.res}begin
      Application.Initialize;
      Application.Title := '短信平台(酒店版1.1)';
      Application.HelpFile := 'helptt.chm';
      Application.CreateForm(Tlogofrm, logofrm);
      Application.CreateForm(Tformain, formain);
      

  8.   

    begin 
      Application.Initialize; 
      Application.Title := '短信平台(酒店版1.1)'; 
      Application.HelpFile := 'helptt.chm'; 
      //Application.CreateForm(Tlogofrm, logofrm); 
      with TLogoFrm.create(nil) do 
      begin
        try
          ShowModal;       
        finally
          if ModalResult = mrOk then Application.CreateForm(Tformain, formain);    end;
      end;
    大致是這樣的,不知道有沒有打錯字。呵呵