|
권대길.한꼬맹이 님이 쓰신 글 :
: 이학균 님이 쓰신 글 :
: : 안녕하세요....
: :
: : 제가 만든 간단한 시리얼 통신 루틴을 컴포넌트로 만들려 하는데...
: : 이벤트 처리는 어떻게 하나요...
: : 책을 찾아봐도 메소드나 프로퍼티는 만드는 법이 나오는데.. 이벤트는 나오지 않네요...
: :
: : 따른 부모 클래스를 상속받지 않아도 되구여..
: : 포트에 데이타를 감지하는 루틴에서 데이타가 들어오면.. 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라는 이벤트에 연결해서 쓰시면 됩니다.
:
: 그럼 도움되시길...
:
:
:
답변 잘 받았습니다.
감지하는 루틴에서 FOnCommRead를 호출하고... 감지한 걸 처리하는 루틴은 어디에다 연결해야 하나요..
__property Classes::TNotifyEvent OnCommRead = {read=FOnCommRead, write=FOnCommRead};
에서.. write= 부분에다 연결해야 하지 않나요?
책에 내용이 나와있지 않아서. 많이 혼란스럽네요..
도와주세요... --++
|