有一个主窗口frmMain,上面有几个按钮 添加 修改 删除什么的
其中添加和修改用的是同一个界面(frmBill),
按添加的时候动态create一个frmBill窗口
按修改的时候也动态create一个frmBill窗口type
TfrmMain = class(TForm)
...
...
...
private
{ Private declarations }
public
FBill_1:TfrmBill; //“添加”窗口
FBill_2:TfrmBill; //“修改”窗口
end;
...
...
procedure TfrmMain.btnAddClick(Sender: TObject);
begin
if FBill_1=nil then
FBill_1:=TfrmBill.Create(application);
FBill_1.g_OpType:=1;
FBill_1.Show;
end;procedure TfrmMain.btnEditClick(Sender: TObject);
begin
if adoSel.IsEmpty=true then exit;
if FBill_2=nil then
FBill_2:=TfrmBill.Create(application);
FBill_2.g_OpType:=2;
FBill_2.Show;
end;
可是这样的话在frmBill窗口里就不能象下面一样释放资源了,要是把FBill_1,FBill_2放在“添加”
“修改”按钮里定义 又不能用if FBill_1=nil then 判断窗口“添加”窗口是不是只有一个 导致了很多个添加窗口 要怎么弄比较方便一点呢?procedure TfrmBill.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=caFree;
end;procedure TfrmBill.FormDestroy(Sender: TObject);
begin
self:=nil;
end;
其中添加和修改用的是同一个界面(frmBill),
按添加的时候动态create一个frmBill窗口
按修改的时候也动态create一个frmBill窗口type
TfrmMain = class(TForm)
...
...
...
private
{ Private declarations }
public
FBill_1:TfrmBill; //“添加”窗口
FBill_2:TfrmBill; //“修改”窗口
end;
...
...
procedure TfrmMain.btnAddClick(Sender: TObject);
begin
if FBill_1=nil then
FBill_1:=TfrmBill.Create(application);
FBill_1.g_OpType:=1;
FBill_1.Show;
end;procedure TfrmMain.btnEditClick(Sender: TObject);
begin
if adoSel.IsEmpty=true then exit;
if FBill_2=nil then
FBill_2:=TfrmBill.Create(application);
FBill_2.g_OpType:=2;
FBill_2.Show;
end;
可是这样的话在frmBill窗口里就不能象下面一样释放资源了,要是把FBill_1,FBill_2放在“添加”
“修改”按钮里定义 又不能用if FBill_1=nil then 判断窗口“添加”窗口是不是只有一个 导致了很多个添加窗口 要怎么弄比较方便一点呢?procedure TfrmBill.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=caFree;
end;procedure TfrmBill.FormDestroy(Sender: TObject);
begin
self:=nil;
end;
可以这样啊
if FBill_2=nil then
FBill_2:=TfrmBill.Create(nil);
try
ShowModal;
finally
Free
end;