|
이학균 님이 쓰신 글 :
: 권대길.한꼬맹이 님이 쓰신 글 :
: : 이학균 님이 쓰신 글 :
: : : 안녕하세요....
: : :
: : : 제가 만든 간단한 시리얼 통신 루틴을 컴포넌트로 만들려 하는데...
: : : 이벤트 처리는 어떻게 하나요...
: : : 책을 찾아봐도 메소드나 프로퍼티는 만드는 법이 나오는데.. 이벤트는 나오지 않네요...
: : :
: : : 따른 부모 클래스를 상속받지 않아도 되구여..
: : : 포트에 데이타를 감지하는 루틴에서 데이타가 들어오면.. 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= 부분에다 연결해야 하지 않나요?
: 책에 내용이 나와있지 않아서. 많이 혼란스럽네요..
: 도와주세요... --++
:
:
컴포넌트로 만드신다고 하지 않으셨나요,,,,
컴포넌트로 만들었어 빌더에 등록하고 만든 컴포넌트 폼에 놓으면 왼쪽에 있는 이벤트 프러퍼티에 자동으로
OnCommRead라고 나올건데요.. 그부분을 마우스로 클릭하면 자동으로 이벤트 연결되고 그리고 연결함수도
자동으로 만들어 지죠... 그러면 끝인데요,,,,,
|