지금 며칠째 여러 컴퓨터만 가지고 씨름하고 있습니다.
처음 델6으로 프로그램을 만든 후 다른 컴퓨터들에서 똑같은 소스로 컴파일하면 소스를 순서대로 읽지 않고 그냥 건너띄어 읽어요.
소스는 이렇습니다.
1. 동적으로 생성된 A폼이 있습니다. 여기엔 Timage가 있구요.
2. 동적으로 B폼을 생생한 후에
3. 다시C폼(퀵리포트폼)을 동적으로 생성하고
4. C폼(퀵리포트)의 밴더에 A폼에 있는 TImage를 가져다가 C폼의 QrImage에 불러오구요.
5. 그리고 A폼을 닫습니다. 메모리 해제도 시키구요.
6. 그 후 2에서 생성한 B폼에서 버튼을 크릭하면 동적으로 생성된 C폼(퀵리포트)을 프린트 합니다.
그런데 문제는 1.실행,2실행,3실행 한 후에 4,5을 실행하지 않고 6을 실행하면
에러가 발생합니다.
어떤 처음 개발한 컴퓨터에서는 정상적으로 모두 실행하여 에러가 안나는데 왜 다른 컴퓨터에서는 이러한 문제가 발생하나요?
며칠째 이것때문에 잠도 설치면서 고생하고 있답니다. 누구 제발 도와주세요 흑흑...
[문제의 소스]
//A폼=FPrintRreview
procedure TFPrintPreview.PpByesClick(Sender: TObject);
begin
//B폼=FPayment
FPayment:=TFPayment.create(Application);
FPayment.watcher.caption:=watcher.caption;
FPayment.FormStyle:=fsStayOnTop;
FPrintPreview.formStyle:=fsNormal;
FPayment.Show;
if Ai1.Picture.Graphic <> nil then
begin
//C폼=FPrintNormal_L
FPrintNormal_L:=TFPrintNormal_L.create(Application);
// 이부분 부터 건너띄어서 마지막 A폼 을 닫는것도 안합니다.
FPrintNormal_L.Ai1.Picture:=Ai1.Picture;
iniF:=Tinifile.create(extractfilepath(Application.exename)+'inif.ini');
iniF.WriteString('Print','Page-Shape','L');
iniF.free;
end;
FPrintPreview.Close;
end;
//B폼=FPaymnet
procedure TFPayment.MCode2Click(Sender: TObject);
var page,Frame_Kind:string;
begin
if Mcode = 3 then
begin
FPrinting:=TFPrinting.create(Application);
FPrinting.FormStyle:=fsStayOnTop;
FPayment.formStyle:=fsNormal;
FPrinting.Show;
FPayment.Close;
iniF:=Tinifile.create(extractfilepath(Application.exename)+'inif.ini');
Frame_kind:=iniF.readString('Print-Kind','Frames','');
Page:=iniF.ReadString('Print','Page-Shape','');
iniF.free;
if Frame_kind = 'Normal' then
begin
if Page='L' then
begin
//여기를 실행하려고 할때 에러가 납니다.
FPrintNormal_L.QrForm.Print;
FPrintNormal_L.Close;
end else
if Page='P' then
begin
FPrintNormal_P.QrForm.Print;
FPrintNormal_P.Close;
end;
end ;
end else Mcode:=0;
end;