同一mdi子窗体没封闭,多次打开,每次窗体的名称不同
同一mdi子窗体没关闭,多次打开,每次窗体的名称不同
同一mdi子窗体没关闭,多次打开,每次窗体的名称不同
如第一次打开为Form1,没有关闭再打开,名称就变成Form1_1了,各位编程时怎样动态获取form的名称?
不能限制每个窗体只能打开一次。也不能在打开前关闭打开过的窗体
------解决方案--------------------
我已前也碰到,这样太可以解决
procedure TFrm_OtherInList.FormDestroy(Sender: TObject);
begin
Frm_OtherInList:=nil;
end;
退出时释放窗体就可以
------解决方案--------------------
正常打开 得激活上次已经打开的 不能再重复打开吧
激活上次打开代码如下:
function TfrmMain.MDIExist(frmName: string): Boolean;
var
i: Integer;
begin
Result := False;
for i := 0 to MDIChildCount - 1 do
begin
if MDIChildren[i].Name = frmName then
begin
Result := True;
MDIChildren[i].BringToFront;
Break;
end
end;
end;
如果lz意思是要打开复制一个的话 那就按照ls意思 差不多了。
------解决方案--------------------
打开前,先判断此窗体是否已经打开了
像楼上的就行了
------解决方案--------------------
我也问个问题mdi最小化了就隐藏了怎么办呀
------解决方案--------------------
if not MDIExist('frm_SellPreList') then
begin
application.CreateForm(Tfrm_SellPreList,frm_SellPreList);
frm_SellPreList.Show;
end
这个对吗,好像不对
------解决方案--------------------
procedure RunDc(App: TApplication);
begin
if not Assigned(frmPatDc) then
begin
Application := App;
frmPatDc := TfrmPatDc.Create(app.MainForm);
frmPatDc.frmHandle :=frmPatDc.Handle;
frmPatDc.Show;
end
else
begin
ShowWindow(frmPatDc.frmHandle, SW_SHOWDEFAULT);
frmPatDc.BringToFront;
end;
end;
------解决方案--------------------
主窗:
同一mdi子窗体没关闭,多次打开,每次窗体的名称不同
如第一次打开为Form1,没有关闭再打开,名称就变成Form1_1了,各位编程时怎样动态获取form的名称?
不能限制每个窗体只能打开一次。也不能在打开前关闭打开过的窗体
------解决方案--------------------
我已前也碰到,这样太可以解决
procedure TFrm_OtherInList.FormDestroy(Sender: TObject);
begin
Frm_OtherInList:=nil;
end;
退出时释放窗体就可以
------解决方案--------------------
正常打开 得激活上次已经打开的 不能再重复打开吧
激活上次打开代码如下:
function TfrmMain.MDIExist(frmName: string): Boolean;
var
i: Integer;
begin
Result := False;
for i := 0 to MDIChildCount - 1 do
begin
if MDIChildren[i].Name = frmName then
begin
Result := True;
MDIChildren[i].BringToFront;
Break;
end
end;
end;
如果lz意思是要打开复制一个的话 那就按照ls意思 差不多了。
------解决方案--------------------
打开前,先判断此窗体是否已经打开了
像楼上的就行了
------解决方案--------------------
我也问个问题mdi最小化了就隐藏了怎么办呀
------解决方案--------------------
if not MDIExist('frm_SellPreList') then
begin
application.CreateForm(Tfrm_SellPreList,frm_SellPreList);
frm_SellPreList.Show;
end
这个对吗,好像不对
------解决方案--------------------
procedure RunDc(App: TApplication);
begin
if not Assigned(frmPatDc) then
begin
Application := App;
frmPatDc := TfrmPatDc.Create(app.MainForm);
frmPatDc.frmHandle :=frmPatDc.Handle;
frmPatDc.Show;
end
else
begin
ShowWindow(frmPatDc.frmHandle, SW_SHOWDEFAULT);
frmPatDc.BringToFront;
end;
end;
------解决方案--------------------
主窗:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
Tmain = class(TForm)
Button1: TButton;
Timer1: TTimer;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);