Q&A

  • 모달창의 부모창 알아내기, 전역변수의 범위는 어디까지??
인쇄를 하려고 하는데요..

인쇄 하는 창이 어디서 왔는지에 따라서 프린트할 내용이 틀려지거든요..

여러 폼에서 인쇄창을 여는데 누가(어떤 폼이) 불렀는지 알고싶거든요..

  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라는 변수에 다른 변수값들이 들어가게 했거든요.

그런데 각 모달창에서 변수가 선언되지 않았다고 에러가 나네요........

어떻게 해결해야하는지...  아시는분... 좀 갈쳐주세요~~~
1  COMMENTS
  • Profile
    홍성락 2002.07.24 00:26
    hsr///////////////////////////////////////////////////////////
    그냥 쉽게해보세요, 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;