프린트를 하려고 하는데요..
프린트 하는 창이 어디서 왔는지에 따라서 프린트할 내용이 틀려지거든요..
프린트 창을 누가(어떤 폼이) 불렀는지 알고싶거든요..
여러 폼에서 아래와 같이 인쇄창을 열거든요...
방법좀 알려주세요~~
------------------------- 아 래 ------------------------------
procedure TfrmQselect.DBGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
P:TPoint;
begin
if button = mbRight then begin
P := DBGrid1.clienttoscreen(point(X,Y));
PopupMenu1.Popup(P.X,P.Y);
end;
end; // 팝업 인쇄 뜨기
procedure TfrmQselect.N1Click(Sender: TObject);
begin
frmPrn:=TfrmPrn.Create(self);
try
frmPrn.ShowModal;
if frmPrn.ModalResult = mrOk then
frmPrn.close;
finally
frmPrn.Free;
end; //try
end; // 팝업 인쇄 눌렀을때 인쇄창 나타나기
물론, TfrmPrn 내부에서 자신을 생성한 폼을 알고 싶으신 것이겠죠?
그렇다면, Owner 속성을 이용하시면 됩니다.
if (Self.Owner<>nil) and (Self.Owner is TForm) then
begin
form:=TForm(Self.Owner);
// 이제 이 폼을 이용해서 어떤 폼에서 생성한 것인지 찾을 수 있죠...
// if AnsiSameText(form.ClassName, 'TfrmQselect') then
// ...
end;
주의 하실점은, 각 폼에서 TfrmPrn을 생성할 때, 반드시 Create(self)로
생성해야 위의 코드가 유효하게 됩니다.