C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[63955] [질문] Component 제작 시..
땅주인 [heaven2] 1159 읽음    2011-03-21 03:23
AsyncPro를 Wrapping 하여 Component를 제작 중에 있습니다.
AsyncPro를 이용하여 시리얼에서 들어오는 데이터를 받아서 특정 포멧으로 만들어서
Application에 Event를 던져주게끔 하려 합니다. (요지는, 특정 포멧을 만들어서 Application에게
전달하는 컴포넌트를 제작하려 합니다.)

메뉴얼 데로 ApdComPort를 상속 받아서 새로운 class를 하나 만들었구요..
거기서 OnTriggerAvail()를 대신하는 함수를 만들었습니다. (맞게 한 것인 지 의문? )
그리고, 시리얼에서 어떤 포멧에 맞는 데이터가 들어오면 Application에 특정 Event를 던져주어서
Application이 이 컴포넌트에서 값을 가져갈 수 있도록 하여야 합니다.

[질문]
1. AsyncPro의 OnTriggerAvail() Event Method를 정의한 것이 제대로 되었는가?
class PACKAGE TNotiCIDComPort : public TApdComPort
{
private:
    virtual void __fastcall OnReceiveData(TObject *CP, WORD Count);
}

__fastcall TNotiCIDComPort::TNotiCIDComPort(TComponent* Owner)  : TApdComPort(Owner)
{
    this->OnTriggerAvail = OnReceiveData;
}
void __fastcall TNotiCIDComPort::OnReceiveData(TObject *CP, WORD Count)
{
    memset(m_PreBuff,0x00, sizeof(m_PreBuff));

    for ( int i = 0 ; i < Count ; i++ ) {
        m_PreBuff[i] = this->GetChar();
    }

    BYTE cLen = 0x00;
    int iRecvSize = Count;
    ....
    ....


2. OnTriggerAvail() Event에 대응하는 함수(OnReceiveData)에서 데이터를 수신 받아, Component를 포함하는
Application으로 Event를 던져주는 방법(User define Event 전달 방법). 강좌에 나온 문서로 잘 되지 않네요.
제가 몰라서 그런 것인 지?
약간 특이한 상황은, Sample들은 대부분 윈도우에서 던져주는 이벤트들이고, 여기 상황은 데이터가 차면
Event를 발생을 시켜주어야 하는 상황입니다. 이리저리 궁리중인데 잘 돼지 않네요.

조언 주시면 감사하겠습니다.

+ -

관련 글 리스트
63955 [질문] Component 제작 시.. 땅주인 1159 2011/03/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.