关于窗体,你是救世主!!(66分)

  • 主题发起人 主题发起人 huait
  • 开始时间 开始时间
H

huait

Unregistered / Unconfirmed
GUEST, unregistred user!
新建三个窗体,设置为自动创建。
Form1中
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
end;

Form2中
procedure TForm2.Button1Click(Sender: TObject);
begin
Form3.Show;
Form3.QuickRep1.Preview;
end;
Form3中
procedure TForm3.QuickRep1Preview(Sender: TObject);
begin
a.QRPrinter:=b.QRPrinter;
end;
运行出现情况是:Form3关闭后Form2不能关闭
之后我在Form3的OnClose中加入如下代码:
QuickRep1:=nil;
Action:=caFree;
此时Form2能关闭,但如再次调用Form3时,出现Access Violation at address xxxxxx;
之后我将Form3设置为手动创建:
procedure TForm2.Button1Click(Sender: TObject);
begin
From3:=Form3.Create(self);
Form3.Show;
Form3.QuickRep1.Preview;
end;
仍出现Access ..........
高手,帮忙,就这么多分了,全给了
 
我没有加下面这段,一切OK。

procedure TForm3.QuickRep1Preview(Sender: TObject);
begin
a.QRPrinter:=b.QRPrinter; //是什么意思?
end;
 
PROJECT 文件里的fORM3和FORM2是否被自动创建了?
 
如果我没有理解错的花,这是个典型的quick report customer preview问题,
你的a放在那里?b放在那里?
a是TQRPreview?
TQRpreview 的preview是一个modal的show,
TQRPreview.preview后的语句在它被释放前不会被执行,你的问题就在这儿
 
后退
顶部