|
이학균 님이 쓰신 글 :
: 안녕하세요....
:
: 제가 만든 간단한 시리얼 통신 루틴을 컴포넌트로 만들려 하는데...
: 이벤트 처리는 어떻게 하나요...
: 책을 찾아봐도 메소드나 프로퍼티는 만드는 법이 나오는데.. 이벤트는 나오지 않네요...
:
: 따른 부모 클래스를 상속받지 않아도 되구여..
: 포트에 데이타를 감지하는 루틴에서 데이타가 들어오면.. WM_COMM_READ라는 메시지를 뿌려주고
: 그 메시지를 감지하는 루틴을 만들어서 컴포넌트 이벤트 란에다 넣고 싶은데,
: 어떻게 해야 하는지 모르겠어요.. 이 이벤트에는...
: void __fastcall TSerialCompo::OnDataRead(char *Inbuf, int Length)에서
: Inbuf와 길이 Length를 넘겨 주고 싶거든요...
: 부탁 드려요..
:
안녕하십니까?
한꼬맹이 입니다.
이학균 님께서 설명한 부분을 제대로 이해했는지 모르겠지만 제가 이해한대로 설명드리겠습니다.,,
일단 컴포넌트 클래스의 private: 영역에
Classes::TNotifyEvent FCommRead; 라고 선언하시고
published: 영역에다가
__property Classes::TNotifyEvent OnCommRead = {read=FOnCommRead, write=FOnCommRead};
선언합니다.
그리고 포트에 데이타를 감지하는 루틴에서 다음과 같이 코딩하세요..
if(FOnCommRead)
FOnCommRead(this);
이렇게 하고나서 컴포넌트의 이벤트란에 OnCommRead라는 이벤트에 연결해서 쓰시면 됩니다.
그럼 도움되시길...
|