Q&A

  • 동적생성한 쿼리오브젝트의 이벤트 핸들러는 어떻게 만드나요?
Zeos 라이브러리를 사용해서 코딩을 하고 있는데요,
디자인타임에 쿼리오브젝트의 이벤트 핸들러를 오브젝트 인스펙터의 이벤트 탭에가서 해당 이벤트를 더블클릭하면 만들어지는 것을 보고, 비슷하게 흉내를 내서 동적오브젝트의 이벤트 핸들러를 만들어 봤는데 동작이 안되는 것 같다는 느낌이 듭니다.

제가 한 방법은

<!--CodeS-->
type
  TForm1 = class(TForm)
...
...
  procedure qryPostError(..........);
private
...
end;
...

procedure TForm1.Button1Click(Sender: TObject);
var
qry: TZQuery;
begin
...
  qry := TZQuery.Create(self);
...

end;

procedure TForm1.qryPostError(......);
berin
....
end;
<!--CodeE-->

와 같이 동적으로 생성한 쿼리 오브젝트의 변수명을 따서 PostError를 뒤에 붙인 프로시져명으로 private절 위에도 넣어주고, 아래에도 프로시져를 코딩해 주었습니다.

컴파일은 잘 되는데...실행을 해보면 에러가 날때 이벤트 핸들러로 가지 않는 듯합니다. 그렇게 생각하는 이유는 화면에 에러 메시지 박스가 뜅~ 떠버리고 이벤트 핸들러 내에서 테스트 용으로 출력하라고 한 것도 출력이 안되거든요.... ㅠㅠ

이벤트 핸들러로 등록시킬 때는 별도로 어떤 작업을 해줘야 하나요?


2  COMMENTS
  • Profile
    최용일 2005.10.27 19:14
    안녕하세요. 최용일입니다.

    이벤트핸들러를 연결시켜주셔야죠...

    qry := TZQuery.Create(self);
    qry.OnPostError := qryPostError;

    그리고 직접코딩해서 만드신 이벤트라면 private, public, protected영역으로 옮기세요.

    ^^ 항상 즐코하세요...

  • Profile
    토니 2005.10.27 19:18
    아항~ 그런거였군여~~~~ ^o^
    정말 정말 감사합니다. :)
    이제나 저제나 하면서 답글이 올라왔을까하고 게시판을 계속 들락거렸는데, 젖과 꿀같은 리플에 진심으로 감사드립니다. ^^