인쇄를 하려고 하는데요..
인쇄 하는 창이 어디서 왔는지에 따라서 프린트할 내용이 틀려지거든요..
여러 폼에서 인쇄창을 여는데 누가(어떤 폼이) 불렀는지 알고싶거든요..
if (Self.Owner<>nil) and (Self.Owner is TForm) then
begin
form:=TForm(Self.Owner);
// if AnsiSameText(form.ClassName, 'TfrmQselect') then
// ...
end;
어떤분(?)이 갈쳐주신대로 이렇게 했더니
Undeclared identifier: 'nill' 이런 에러가 나는데....
누구 이부분 설명쩜 해주세여......................
if (Self.Owner<>nil) and (Self.Owner is TForm) then
begin
form:=TForm(Self.Owner);
->form이 머죠? 현재 폼을 말하는건가요?
/////////////////////////////////////////////////////////////
저 방법이 잘 안되서 전역변수를 두고
인쇄창에서 변수값을 비교해서 각각 다른 창을 만들려고 했는데...
main에서 a라는 변수를 선언하고
각각의 모달창에서 a라는 변수에 다른 변수값들이 들어가게 했거든요.
그런데 각 모달창에서 변수가 선언되지 않았다고 에러가 나네요........
어떻게 해결해야하는지... 아시는분... 좀 갈쳐주세요~~~
그냥 쉽게해보세요, 2가지입니다
1. 위에서 처럼 a라는 전역변수사용시 프린트폼의 public에 선언한후
프린트폼 생성 호출(ShowModal)전에 값주기
frmPrn:=TfrmPrn.Create(self);
frmPrn.a := '폼1입니다';
frmPrn.ShowModal;
2. 아니면, 프린트폼의 public에 USERForm : TForm; 이라고 전역변수 선언후
프린트폼 생성 호출(ShowModal)전에 폼값주기
frmPrn:=TfrmPrn.Create(self);
frmPrn.USERForm := frm_main;
frmPrn.ShowModal;