在一个主Form里有一个菜单 (“文件”->“打开窗体1”)
一个子窗体 在子窗体里放一个dxDockPanel1 (exprees的控件) 然后Form的BorderStyle设成bsNone;procedure TfrmRecipe.dxDockPanel1Close(Sender: TdxCustomDockControl); //子窗体上的dxDockPanel1的关闭事件
begin
ModalResult:=mrCancel;
end;第一次能关闭 然后再 “文件”->“打开窗体1” 的时候就出现问题了 用frmRecipe.close 也是这样的错误 倒哦~ 有解决的方法吗?
一个子窗体 在子窗体里放一个dxDockPanel1 (exprees的控件) 然后Form的BorderStyle设成bsNone;procedure TfrmRecipe.dxDockPanel1Close(Sender: TdxCustomDockControl); //子窗体上的dxDockPanel1的关闭事件
begin
ModalResult:=mrCancel;
end;第一次能关闭 然后再 “文件”->“打开窗体1” 的时候就出现问题了 用frmRecipe.close 也是这样的错误 倒哦~ 有解决的方法吗?
而frmRecipe变量还是保存的你先前的form引用!
begin
frmRecipe.ShowModal; //看诊登记
end;************************************************
unit URecipe;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, dxDockControl, dxDockPanel, cxRadioGroup, cxControls,
cxContainer, cxEdit, cxTextEdit, ExtCtrls, cxMaskEdit, cxDropDownEdit,
cxMemo, cxLookAndFeelPainters, cxButtons, cxGroupBox, TFlatButtonUnit;type
TfrmRecipe = class(TForm)
dxDockSite1: TdxDockSite;
dxLayoutDockSite1: TdxLayoutDockSite;
dxDockPanel1: TdxDockPanel;
dxDockingManager1: TdxDockingManager;
Panel1: TPanel;
Panel2: TPanel;
Label13: TLabel;
rdStu: TcxRadioButton;
rdTeachar: TcxRadioButton;
rdWorker: TcxRadioButton;
rdOther: TcxRadioButton;
btnOk: TFlatButton;
btnCancel: TFlatButton;
cxGroupBox1: TcxGroupBox;
Label1: TLabel;
cxTextEdit1: TcxTextEdit;
Label2: TLabel;
edtName: TcxTextEdit;
Label3: TLabel;
cbSex: TcxComboBox;
cbDoctor: TcxComboBox;
Label10: TLabel;
edtAge: TcxTextEdit;
Label4: TLabel;
lbJob: TLabel;
Label5: TLabel;
memo: TcxMemo;
FlatButton1: TFlatButton;
Label9: TLabel;
memoRecipe: TcxMemo;
FlatButton2: TFlatButton;
editMoney: TcxTextEdit;
Label8: TLabel;
Label6: TLabel;
memoRe: TcxMemo;
edtStuID: TcxTextEdit;
procedure rdTeacharClick(Sender: TObject);
procedure rdWorkerClick(Sender: TObject);
procedure rdOtherClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure rdStuClick(Sender: TObject);
procedure btnOkClick(Sender: TObject);
procedure dxDockPanel1Close(Sender: TdxCustomDockControl);
private
{ Private declarations }
public
{ Public declarations }
end;var
frmRecipe: TfrmRecipe;implementation{$R *.dfm}
procedure TfrmRecipe.rdStuClick(Sender: TObject);
begin
lbJob.Caption:='学号 :';
end;
procedure TfrmRecipe.rdTeacharClick(Sender: TObject);
begin
lbJob.Caption:='教师号 :';
end;procedure TfrmRecipe.rdWorkerClick(Sender: TObject);
begin
lbJob.Caption:='员工号 :';
end;procedure TfrmRecipe.rdOtherClick(Sender: TObject);
begin
lbJob.Caption:='临时号 :';
end;procedure TfrmRecipe.btnCancelClick(Sender: TObject);
begin
ModalResult:=mrCancel;
end;procedure TfrmRecipe.btnOkClick(Sender: TObject);
begin
ModalResult:=mrOk;
end;procedure TfrmRecipe.dxDockPanel1Close(Sender: TdxCustomDockControl);
begin
ModalResult:=mrCancel;
end;end.
form1:=TForm1.Create(Application); form1是一个mdi窗体.
如果没有在Form1的Destroy中加入 form1:=nil;
第一个打开\关闭都没有问题,如果第二打开就会出错,
如果用Self:=nil都不行.我已经在Form1.OnClose中写入Action:=caFree,
不知道楼主是怎么打开窗体的,把代码拿出来看看.
begin
frmRecipe.ShowModal; //看诊登记
end;