关于弹出窗口的问题~(100分)

  • 主题发起人 Delphi哈哈王
  • 开始时间
D

Delphi哈哈王

Unregistered / Unconfirmed
GUEST, unregistred user!
form1、form2、form3<br>form1是主窗体,在Form1中弹出form2,<br>我用下面的方法使form2也出现在任务栏上,并可以用Alt+Tab与Form1进行切换<br>procedure TForm2.CreateParams(var Params: TCreateParams);<br>begin<br>&nbsp; inherited;<br>&nbsp; Params.WndParent:=0;<br>end;<br><br>但是这时在form2中ShowModal出form3时,form1就会跳到form2的前面,form3仍然在最顶层。<br>请问诸位有何方法可以在form2中ShowModal出form3时,不让form1跳到form2的前面?<br>
 
Form3也如法炮制:<br>procedure TForm3.CreateParams(var Params: TCreateParams);<br>begin<br>&nbsp; inherited;<br>&nbsp; Params.WndParent:=Form2.Handle;<br>end;<br><br>我还不知道这样就可以用Alt+Tab切换了。从你这里学到的。<br>
 
但是这样的话,form3就也显示在任务栏上了啊~<br>form3是一个属性设置的对话框,我不想让它出现在任务栏啊~<br>
 
我试了一下~<br>这样做,FORM1还是会跳到form2前面,<br>form3也没有出现在任务栏~
 
谁说的,这样根本不行!!!!
 
crpp168,你是说什么不行?<br>你有比较好的办法吗?
 
我又试了一下,没问题啊。<br>不过这样只合适ShowModal,因为Form3总在Form2前面。<br>如果用Show,Form3的Params.WndParent:=0好了。<br>
 
tinyfish,我也重试了一下,还是不对啊~<br>form3是在最顶层,<br>但是form1仍然跳到form2前面了啊?
 
在delphi中我没发现form有CreateParams事件或方法呀。
 
to :Delphi哈哈王:<br>&nbsp; &nbsp;我想情况应该是这样的。你把form2 的wndparent=0后,<br>&nbsp; 改变了窗体的从属属性,使得form2变成了主窗体,也许一个系统中,<br>&nbsp; 只能有一个form的wndparent 等于0,我想要达到你的要求,你可以在<br>&nbsp; &nbsp;form3的oncreate事件中,再次调用form1的createparams函数,去试试看看。
 
[:(]还是没有成功~~~
 
你的目的是什么?不明白起来了
 
就是想象foxmail那样,<br>主窗口上打开地址簿,地址簿的窗体可以出现在任务栏,可以和主窗体用TAB切换<br>,然后地址簿上ShowModal出一个新建联系人的的窗口,<br>此时的窗口排列顺序应该为主窗体在最下面,地址簿在中间,新建联系人在顶层。<br><br>但是我实际操作中,主窗体却到了中间,地址簿到了最低层~~<br><br>要解决的就是这个~
 
好象在form1中也重载CreateParams方法,也加入Params.WndParent:=0;就好了<br>???,学习!
 
tinyfish的方法能實現:form2中ShowModal出form3时,FORM1不会跳到form2前面,<br>并且form3出现在任务栏.<br>但沒有發現可以用Alt+Tab进行Form1與Form2r的切换.<br>
 
各位大虾,能告诉我怎样实现下面的功能:<br>我的Form1上有一个按钮,我想当我拖动它到桌面上时,就把它释放(Free)掉<br>该怎样来实现呢?<br>我怎样才能知道我的鼠标把它拖动到桌面(或者是我的应用程序以外的其他的应用程序)呢?<br>最好给出个例子,带原码的。谢谢!
 
呵呵,睡了一觉后,总算成功了~谢谢大家~<br>
 
顶部