现在有两个MDI子窗体 sarch 和 RegisterEmployee 当主窗体 main 调用子窗体sarch(**** sarch 窗体在未关闭的情况下*****)再分别调用RegisterEmloyee窗体时时即报错。(如果sarch 子窗体已经关闭了,再去调用RegisterEmployee则正常)(如果先调用RegisterEmloyee再次调用 sarch 子窗体时则很正常)也就是说当Sarch 子窗体在打开的情况下,(未关闭)无法调用其他子窗体。 想了很久,还是不明白,还希望高手赐教。
报错信息:“name not unique in this context ”
原代码:unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, WinSkinData, Buttons, ComCtrls, RzDBLook, RzGroupBar,
RzCommon, RzSelDir, ImgList, ExtCtrls, RzPanel, RzStatus, StdCtrls,
RzLabel, RzDBLbl, RzBorder;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
SkinData1: TSkinData;
N9: TMenuItem;
RzGroupBar1: TRzGroupBar;
RzGroup1: TRzGroup;
RzGroup3: TRzGroup;
RzGroup2: TRzGroup;
ImageList1: TImageList;
ImageList2: TImageList;
ImageList3: TImageList;
RzStatusBar1: TRzStatusBar;
RzStatusPane1: TRzStatusPane;
RzStatusPane2: TRzStatusPane;
RzStatusPane3: TRzStatusPane;
RzClockStatus1: TRzClockStatus;
RzMarqueeStatus1: TRzMarqueeStatus;
procedure N9Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure RzGroup1Items0Click(Sender: TObject);
procedure RzGroup1Items1Click(Sender: TObject);
procedure FormCreate(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2, Unit3, Unit5, Unit4, Unit8;{$R *.dfm}procedure TForm1.N9Click(Sender: TObject);
begin
About.ShowModal;
end;procedure TForm1.N2Click(Sender: TObject);
begin
pwd.ShowModal;
end;procedure TForm1.N3Click(Sender: TObject);
begin
lgout.Show
end;procedure TForm1.RzGroup1Items0Click(Sender: TObject);------------>调用Carch子窗体
begin
IF not Assigned(sarch) then
sarch:= Tsarch.Create(self)------------------------------》程序提示这有问题
else
sarch.Show ;
end;procedure TForm1.RzGroup1Items1Click(Sender: TObject);-------》调用registerEmployee 子窗体
begin
IF not Assigned(RegisterEmployee) then
RegisterEmployee:= TRegisterEmployee.Create(self)
else
RegisterEmployee.Show ;
end;procedure TForm1.FormCreate(Sender: TObject);
beginend;end.
报错信息:“name not unique in this context ”
原代码:unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, WinSkinData, Buttons, ComCtrls, RzDBLook, RzGroupBar,
RzCommon, RzSelDir, ImgList, ExtCtrls, RzPanel, RzStatus, StdCtrls,
RzLabel, RzDBLbl, RzBorder;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
SkinData1: TSkinData;
N9: TMenuItem;
RzGroupBar1: TRzGroupBar;
RzGroup1: TRzGroup;
RzGroup3: TRzGroup;
RzGroup2: TRzGroup;
ImageList1: TImageList;
ImageList2: TImageList;
ImageList3: TImageList;
RzStatusBar1: TRzStatusBar;
RzStatusPane1: TRzStatusPane;
RzStatusPane2: TRzStatusPane;
RzStatusPane3: TRzStatusPane;
RzClockStatus1: TRzClockStatus;
RzMarqueeStatus1: TRzMarqueeStatus;
procedure N9Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure RzGroup1Items0Click(Sender: TObject);
procedure RzGroup1Items1Click(Sender: TObject);
procedure FormCreate(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2, Unit3, Unit5, Unit4, Unit8;{$R *.dfm}procedure TForm1.N9Click(Sender: TObject);
begin
About.ShowModal;
end;procedure TForm1.N2Click(Sender: TObject);
begin
pwd.ShowModal;
end;procedure TForm1.N3Click(Sender: TObject);
begin
lgout.Show
end;procedure TForm1.RzGroup1Items0Click(Sender: TObject);------------>调用Carch子窗体
begin
IF not Assigned(sarch) then
sarch:= Tsarch.Create(self)------------------------------》程序提示这有问题
else
sarch.Show ;
end;procedure TForm1.RzGroup1Items1Click(Sender: TObject);-------》调用registerEmployee 子窗体
begin
IF not Assigned(RegisterEmployee) then
RegisterEmployee:= TRegisterEmployee.Create(self)
else
RegisterEmployee.Show ;
end;procedure TForm1.FormCreate(Sender: TObject);
beginend;end.
begin
IF not Assigned(RegisterEmployee) then
RegisterEmployee:= TRegisterEmployee.Create(self)--------》程序提示这有问题
else
RegisterEmployee.Show ;
end;
编译提示还是运行时提示
还是执行过程中提示?RegisterEmployee:= TRegisterEmployee.Create(self)--------》程序提示这有问题
把上面代码中的RegisterEmployee换成一个其他的临时变量看看可以吗?
比如tForm(定义的时候要定义成tForm: TRegisterEmployee)
begin
sarch:= Tsarch.Create(self);
sarch.Show ;
end;procedure TForm1.RzGroup1Items2Click(Sender: TObject);
begin
RegisterEmployee:= TRegisterEmployee.Create(self);
RegisterEmployee.Show ;
end;end.
你干脆就直接这样算了。