M mafan Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-05 #1 主窗口:Form1 Form1调出了一个Form2,方法是ShowModal; 问题是Form2中调出的Form3如何总在上面(Always on Top)?
郭 郭镇松 Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-05 #2 Form3.FormStyle := fsStayOnTop; 或 SetWindowPos(Form3.Handle, HWND_TOPMOST, Form3.Left, Form3.Top, 0, 0, SWP_SHOWWINDOW or SWP_NOACTIVATE or SWP_NOSIZE);
Form3.FormStyle := fsStayOnTop; 或 SetWindowPos(Form3.Handle, HWND_TOPMOST, Form3.Left, Form3.Top, 0, 0, SWP_SHOWWINDOW or SWP_NOACTIVATE or SWP_NOSIZE);
林 林沐 Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-05 #3 1.Form3.ShowModal 2.Form3.FormStyle := fsStayOnTop; 3.用SetWindowPos
李 李衍智 Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-05 #7 我试过,Form3可以ShowModal.请详细说一下你的情况.
M mafan Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-05 #9 我的意思是:不可以Form3.ShowModal(因为这时Form2必须活着),只可以SHOW
李 李衍智 Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-05 #10 你们把问题想复杂了,如果Form3设为StayOnTop,那么Form3必然为Form2所覆盖. 很简单,把三个Form的属性都设为Normal,那么是Form3在上面. Form1调用 Form2.ShowModal Form2调用 Form3.ShowModal 一切正常
你们把问题想复杂了,如果Form3设为StayOnTop,那么Form3必然为Form2所覆盖. 很简单,把三个Form的属性都设为Normal,那么是Form3在上面. Form1调用 Form2.ShowModal Form2调用 Form3.ShowModal 一切正常
M mafan Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-06 #11 Form1调用 Form2.ShowModal Form2调用 Form3.ShowModal//我不可以在这里ShowModal,因为这里还要FORM2活着; 如果设计要求允许,也就没这个问题了
郭 郭镇松 Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-06 #12 将form3的FormStyle 设为 fsStayOnTop; 不要让程序运行时自动创建form3,在.dpr中去掉 Application.CreateForm(TForm3, Form3); 在form3.show 前加上 if form3 = nil then Application.CreateForm(TForm3, Form3);
将form3的FormStyle 设为 fsStayOnTop; 不要让程序运行时自动创建form3,在.dpr中去掉 Application.CreateForm(TForm3, Form3); 在form3.show 前加上 if form3 = nil then Application.CreateForm(TForm3, Form3);
李 李衍智 Unregistered / Unconfirmed GUEST, unregistred user! 2001-03-06 #13 呵呵,我明白了 你用点儿技巧就可以了. 设一个全局的变量whichactive = 0; Form2及Form3都用show()的方式打开. form2的ondeactivate 时 whichactive = 1; form3的ondeactivate 时 whichactive = 2; form1的onactivate 时 判断 if whichactive = 1 then form2.show() if whichactive = 2 then begin form2.show() form3.show() end 另外form的关闭顺序注意一下就可以了.
呵呵,我明白了 你用点儿技巧就可以了. 设一个全局的变量whichactive = 0; Form2及Form3都用show()的方式打开. form2的ondeactivate 时 whichactive = 1; form3的ondeactivate 时 whichactive = 2; form1的onactivate 时 判断 if whichactive = 1 then form2.show() if whichactive = 2 then begin form2.show() form3.show() end 另外form的关闭顺序注意一下就可以了.