为了在打开一个子窗口的的时候判断其状态作相应的操作,有如下代码:
procedure TF_main.BD_FlightClick(Sender: TObject);
var
li_loop:integer;
lbl_falg:boolean; //窗口是否打开的标志
begin
lbl_falg:=false;
//判断要打开的子窗体中是否已经打开
for li_loop:=0 to self.MDIChildCount-1 do
begin
if self.MDIChildren[li_loop] is TF_flight then
begin
lbl_falg:=true; //判断出窗口已打开
end
end; if lbl_falg then //如果子窗体已打开,则将它激活
begin
F_flight.Show;//激活
if F_flight.WindowState=wsMinimized then
ShowWindow(F_flight.Handle,SW_SHOWNORMAL);//如果是最小化就显示为正常
end
else // 如果子窗体未打开,则创建它
begin
F_flight:=TF_flight.Create(Self);
F_flight.Show;
end;
end;现在的问题是有很多菜单都要作同样的操作,唯一不同的在于使用不同的类创建不同的子窗体请问有具体的方法吗?
procedure TF_main.BD_FlightClick(Sender: TObject);
var
li_loop:integer;
lbl_falg:boolean; //窗口是否打开的标志
begin
lbl_falg:=false;
//判断要打开的子窗体中是否已经打开
for li_loop:=0 to self.MDIChildCount-1 do
begin
if self.MDIChildren[li_loop] is TF_flight then
begin
lbl_falg:=true; //判断出窗口已打开
end
end; if lbl_falg then //如果子窗体已打开,则将它激活
begin
F_flight.Show;//激活
if F_flight.WindowState=wsMinimized then
ShowWindow(F_flight.Handle,SW_SHOWNORMAL);//如果是最小化就显示为正常
end
else // 如果子窗体未打开,则创建它
begin
F_flight:=TF_flight.Create(Self);
F_flight.Show;
end;
end;现在的问题是有很多菜单都要作同样的操作,唯一不同的在于使用不同的类创建不同的子窗体请问有具体的方法吗?
解决方案 »
- 问一下不同名字的EDIT怎么样批量访问?
- Twebbrowser中有Flash,Flash内Get网站的内容。
- 一个函数的问题。。试了多次都不行不知何帮,请高手指点。FUNCTION 就急..............................................................
- ADO连SQLSEVER,操作BOLB字段数据>50M时,报内存不足是啥问题?
- 如何将String型的转化为数据库中的货币型??
- 奇怪!为什么啊,请帮忙看看!100分送上(关于托盘,让窗体显示在最上方)
- 关于ActiveX控件程序的调试
- Delphi的bug吗?请看看~~~
- 如何判定CHECKLISTBOX是否有两列被选中!
- CreatePolygonRgn
- 如何来判断grid里是否有内容
- 数据库的一个问题?
var
i : integer;
begin
for i:=0 to FormMain.MDIChildCount -1 do
if (ChildFormName = FormMain.MDIChildren[i].ClassName) then
begin
FormMain.MDIChildren[i].Show;
if FormMain.MDIChildren[i].WindowState = wsMinimized then
ShowWindow(FormMain.MDIChildren[i].Handle,SW_SHOWNORMAL);
end;
end;
else // 如果子窗体未打开,则创建它
begin
F_flight:=TF_flight.Create(Self);
F_flight.Show;
end;
部分呢,这可是关键的东西啊
var i: integer; frmChild: TForm;
begin
for i := 0 to Screen.FormCount - 1 do
if Screen.Forms[i].ClassType = FormClass then
begin
frmChild := Screen.Forms[i];
TForm(fm) := frmChild;
frmChild.Show;
Exit;
end;
frmChild := TForm(FormClass.NewInstance);
TForm(fm) := frmChild;
frmChild.Create(Owner);
frmChild.Show;
end;