问题是:如果在form2里放置一QuickRep1控件,打开时就会出现Access violation异常(如果没有QuickRep1控件则一切正常),请高手指教!!!(当你反复单击bitbtn时会出现)
10 个解决方案
#1
我怀疑是Delphi的一个大漏洞
#2
呵呵,一般来说,不要先怀疑是Delphi的bug,检查检查一下自己的code先吧
贴贴你的bitbtn1的事件,以及form2的释放代码如Close,closequery等事件的代码
看看有什么问题.
贴贴你的bitbtn1的事件,以及form2的释放代码如Close,closequery等事件的代码
看看有什么问题.
#3
另外,检查一下工程选项中自动创建的form是怎么设置的
#4
其中:
bitbtn1的代码为:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
closechildfrm(Sender);//form1里的过程
if not assigned(form2) then
begin
form2:=tform2.create(nil);
form2.show;
end;
end;
procedure TForm1.closechildfrm(sender:tobject);
var
I: Integer;
begin
if form1.MDIChildCount<>0 then
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do
form1.MDIChildren[I].Close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form2:=nil;
action:=caFree;
end;
bitbtn1的代码为:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
closechildfrm(Sender);//form1里的过程
if not assigned(form2) then
begin
form2:=tform2.create(nil);
form2.show;
end;
end;
procedure TForm1.closechildfrm(sender:tobject);
var
I: Integer;
begin
if form1.MDIChildCount<>0 then
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do
form1.MDIChildren[I].Close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form2:=nil;
action:=caFree;
end;
#5
就这么多代码,好郁闷呀
#6
怎么不回事儿???郁闷
#7
我用D6测试了,没有发现问题。
怀疑是你的Delphi的问题,我的D6装了补丁的。
怀疑是你的Delphi的问题,我的D6装了补丁的。
#8
我用的是delphi7
#9
delphi7还要装补丁吗???在哪儿下呀
#10
没人在了吗?
#1
我怀疑是Delphi的一个大漏洞
#2
呵呵,一般来说,不要先怀疑是Delphi的bug,检查检查一下自己的code先吧
贴贴你的bitbtn1的事件,以及form2的释放代码如Close,closequery等事件的代码
看看有什么问题.
贴贴你的bitbtn1的事件,以及form2的释放代码如Close,closequery等事件的代码
看看有什么问题.
#3
另外,检查一下工程选项中自动创建的form是怎么设置的
#4
其中:
bitbtn1的代码为:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
closechildfrm(Sender);//form1里的过程
if not assigned(form2) then
begin
form2:=tform2.create(nil);
form2.show;
end;
end;
procedure TForm1.closechildfrm(sender:tobject);
var
I: Integer;
begin
if form1.MDIChildCount<>0 then
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do
form1.MDIChildren[I].Close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form2:=nil;
action:=caFree;
end;
bitbtn1的代码为:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
closechildfrm(Sender);//form1里的过程
if not assigned(form2) then
begin
form2:=tform2.create(nil);
form2.show;
end;
end;
procedure TForm1.closechildfrm(sender:tobject);
var
I: Integer;
begin
if form1.MDIChildCount<>0 then
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do
form1.MDIChildren[I].Close;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form2:=nil;
action:=caFree;
end;
#5
就这么多代码,好郁闷呀
#6
怎么不回事儿???郁闷
#7
我用D6测试了,没有发现问题。
怀疑是你的Delphi的问题,我的D6装了补丁的。
怀疑是你的Delphi的问题,我的D6装了补丁的。
#8
我用的是delphi7
#9
delphi7还要装补丁吗???在哪儿下呀
#10
没人在了吗?