Q&A

  • OleServer 를 이용해 Word 를 제어하려고 할때 이벤트 처리 방법..
안녕하세요..
간단히 워드를 제어하는 프로그램을 샘플 프로그램을 작성중인데요
참으로 이해가 안가는 상황이 발생되어서 질문을 올립니다.

간단히 소스를 적으면


procedure TForm1.Button1Click(Sender: TObject);
var
  WordApp : TWordApplication
begin
  WordApp := TWordApplication.Create(nil);
  WordApp.Connect;
  WordApp.Visible := true;
  WordApp.OnDocumentBeforePrint := WordAppDocumentBeforePrint;
...
end;

procedure TForm1.WordAppDocumentBeforePrint(Sender: TObject; var Doc,  Cancel: OleVariant);
begin
   Cancel := true;
end;

여기에서 Button1Click이 실행되면 (버튼이 눌리면) 워드가 뜹니다
그리고 .doc 파일 하나를 연 후 프린트를 하면 WordAppDocumentBeforePrint 함수가 불리지요.
그리고 원래대로 Cancel 에 true 를 넣으면 워드이 프린트 대화상자가 안떠야 정상입니다.
하지만 전혀 그렇지 않네요. 원인이 뭔지 모르겠습니다.
동일한 소스를 VB 에서 실행하면 정상적으로 실행이 됩니다.

참고로 이건 VB 소스 입니다. 잘되지요

Private Sub appWD_DocumentBeforePrint(ByVal Doc As Word.Document, Cancel As Boolean)
    Cancel = True
End Sub

Private Sub Command1_Click()
    Set appWD = CreateObject("Word.Application.9")
    appWD.Visible = True
End Sub

혹시 같은 경험을 하신 분이나 해결책을 아시는 분은 답글 좀 주세요..
그럼.. 예상밖의 더운날씨에 몸조심 하세요
0  COMMENTS