我在右键pop菜单中的事件里面加入了OpenFileDialog->Execute(),但是大多数情况下点击菜单,会看见对话框闪了一下,就立刻消失了! 我发现是它自己退到了主程序窗体后面导致看不见!以上情况发生概率为80%,不是每次都出现!我保证代码没有一点变化!还有,如果不在调试器中运行的话,即直接在资源管理器中运行exe文件的话,以上情况不出现,肯定每次都正确弹出!到底什么问题呢?????我百思不得其解阿!!!!!!

解决方案 »

  1.   

    是因为OpenFileDialog.FileName设置得不正确吧。。if FileExists(edit1.Text) then 
      OpenFileDialog1.FileName:=edit1.Text;
    if OpenFileDialog.Execute then begin
      ...
    end;
      

  2.   

    filename我没设,应该不是这样的问题。其实对话框弹出来了,但是自动退到窗体后面。 什么回事呢?
      

  3.   

    调用TForm类里的SendToBack(),将主窗体放到后面去.
      

  4.   

    我也遇到这样的问题,
    if OpenFileDialog.Execute then
    经常也隐藏在后~~~~~~学习啊
      

  5.   

    if FileExists(edit1.Text) then 
      OpenFileDialog1.FileName:=edit1.Text;
      

  6.   

    你其它的窗口式怎么建立的,可能你自己绕开了delphi对窗口的管理机制,所以引起混乱。
      

  7.   

    你最好能将代码贴上来,这样才能找到问题到底出在哪里。。我所说的delphi窗口管理机制混乱,有可能是因为你建立了没有parent的form,或者使用DisableTaskWindows()等函数时造成的。。
    还有,你的popupmenu用的是TPopupMenu还是TPopupActionBarEx,后者的话可能是有如此问题。
    另外,你也可以尝试,在popupmen的事件中不直接显示对话框,而是再发送一个自定义消息给本窗体,窗体接收到消息后再显示对话框。