我用从数据库取出的字段来打开MDI窗口,但是我想让每个窗口只能打开一个,该怎么办啊?
这是我的代码:procedure tform17.stf(Sender: TObject);
var
FClass: TPersistentClass;
FForm : TForm;
begin
FClass := FindClass((Sender as TMenuItem).Hint);
if Assigned(FClass) then
begin
FForm := TFormClass(FClass).Create(Self);
// fform.show;
//……你可以随便处理这个根据类名创建出来的窗体。 fform.Show; end
else
ShowMessage('类TForm1未注册!');end;帮我改改啦~谢谢大虾o(∩_∩)o
这是我的代码:procedure tform17.stf(Sender: TObject);
var
FClass: TPersistentClass;
FForm : TForm;
begin
FClass := FindClass((Sender as TMenuItem).Hint);
if Assigned(FClass) then
begin
FForm := TFormClass(FClass).Create(Self);
// fform.show;
//……你可以随便处理这个根据类名创建出来的窗体。 fform.Show; end
else
ShowMessage('类TForm1未注册!');end;帮我改改啦~谢谢大虾o(∩_∩)o
var
i: integer;
Child: TForm;
begin
for i := 0 to Screen.FormCount - 1 do
//if screen.Forms[i].Owner = Aowner then exit else
//如有一窗口打开,将不打开新的窗口
if (Screen.Forms[i].ClassType = FormClass) and ( caption = screen.Forms[i].Caption) then
begin
begin
Child := Screen.Forms[i];
if Child.WindowState = wsMinimized then //如已存在但最少化的窗口,将还原显示
ShowWindow(Child.handle, SW_SHOWNORMAL)
else
ShowWindow(Child.handle, SW_SHOWNA);
if (not Child.Visible) then Child.Visible := True;
Child.BringToFront;
Child.Setfocus;
Child.WindowState := wsMaximized;
TForm(fm) := Child;
Result := True;
exit;
end;
end;
Result := False;