如何使打开的多个form中用代码使其中一个激活!(100分)

  • 主题发起人 主题发起人 allow
  • 开始时间 开始时间
A

allow

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序用form1.show;form2.show;form3.show;显示了3个表单,

如何用主程序的按钮,将任意的表单设为当前!

我用form1.SetFocus,系统提示出错!
 
form1.SetFocus没错吧,不过form1上要有能接收焦点的控件就可以。
 
to:wjiachun
如何设form1上能接收焦点的控件
 
form1.bringtofront;
 
form1.active = true
 
最简单直接的办法是form.show
不论窗体是否已经显示,直接会成为当前窗体
 
to mat
用show会又显示一个这样的窗口,
to 教父
form1.bringtofront;如何使用
to LanFairy
form1.active := true 系统提示只读属性不能修改!



 
yourform.active = true
 
直接用show怎么有会显示一个窗体,你的窗体是动态创建的吗?
再者:如果不是动态创建的,你show的时候窗体不就变成当前的了吗。需要那么复杂吗?
或者你是有什么特别的要求,说的详细一点。
 
我试了试form1.SetFocus,确实可以呀
 
用show, 一点问题也没有,很好啊。
 
Form1.BringToFront;
 
function bShowIt;
begin
result := assigned(frm);
if result then
begin
if frm.WindowState = wsMinimized then frm.WindowState := wsNormal;
frm.BringToFront;
end;
end;

 
to mat
我的页面是动态生成的,所以每show一次,都会显示一个新表单!

to redhat2000
我用你的方法,好像没反应!是不是对动态生成的不起作用!
 
就算是动态生成的也不会show一次,都会显示一个新表单,只有create才会产生一个新的表单。
你检查一下你的代码,再就是好好找本书看看MDI方面的内容。
 
不是新建,是旧的没有消失,又显示了一个新的,
我没有把他们设成mdi
 
你到底是想做什么,是想新建无数个form1, form2, form3,还是只想建一次然后free, 然后再建?
 
allow,最好把你创建窗体的代码贴出来
 
var form1:tform;
begin
try
form1:=tform.Create(nil);
toolbutton9.Visible:=true;//用她来使form1激活
dhjl.show;
except
form1.free;
toolbutton9.Visible:=false;
end;
这是很简单的代码,

我的意思是:
当显示了form1后,我在不关闭他的情况下会去点主窗口,
就是说,一个两个好说,当多了的话,我想通过点击主窗口的按钮,来激活这个form
不知道我说的明不明白?




 
这样写
private
form2:tform;

button.onclik
begin
if not assigned(form2) then
form2:=tform.Create(nil);
form2.show;
end
以上经过测试是可行的

 
后退
顶部