Q&A

  • Access Violation..
안녕하세요..

답을 구합니다.

부탁드려요..

==========================================

폼 CEM040PF

TQRPreview --> QrpConcert

글로벌 변수 TQuickRep의 포인터 --> uoQuickRep이 있습니다.

버튼 Click event

CEM040PF에서 버튼을 클릭해서 query을 이용해 데이터를 조회하고 나서

CEM040_1PF라는 폼을 Create시키고 CEM040_1PF.QuickRep1.Preview



procedure TCEM040PF.sbtRETRIEVEClick(Sender: TObject);

begin

...

...

with TCEM040_1PF.Create(self) do

begin

qrpConcert.Preview;

Exit;

end;

...

end;



폼 CEM040_1PF

TQuickRep --> QuickRep1

QuickRep1Preview Event



procedure TCEM040_1PF.qrpConcertPreview(Sender: TObject);

begin

CEM040PF.QrpConcert.QRPrinter := qrpConcert.QRPrinter;

CEM040PF.uoQuickRep := @qrpConcert;

CEM040PF.Show;

end;



procedure TCEM040_1PF.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action := caFree;

end;





== 대충 다음과 같은데..

여기서 CEM040PF의 버튼을 여러번 누르게 되면 계속해서 CEM040_1PF는 계속

Create되잖아..

그런 상태에서 CEM040PF를 종료하면



Error Message 인 아래 메시지가 떠요..



Project CEM001PP.exe raised exception Class EAccessViolation with

Message. 'Access violation at address 0140BCA9. Write of address

02816820.'...



왜 그럴까요.. 그리고 또 어떻게 대처해야되는지 아리켜 주세요..

고맙습니다..

0  COMMENTS