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
[27945] [질문] TTimer에 관한 질문입니다.
김현규 [lovest] 1084 읽음    2003-11-21 16:57
TIdTCPServer를 이용해 소켓프로그래밍을 하고 있습니다.

클라이언트가 접속할때마다 클라이언트를 관리할 클래스를 동적생성하는데요..

그 클래스의 생성자함수에서 TTimer를 또 동적생성해서 타이머를 작동시킵니다. (필요에의해서..)

하지만 이렇게 생성시킨 타이머가 전혀 작동하지 않네요..

일단 소스입니다.

//------------------------------------------------------------------
// OnConnect() 함수
void __fastcall TfrmMain::TCPServerConnect(TIdPeerThread *AThread)
{
    cVmsClient *Client;

    Client = new cVmsClient(this);
    Client->VmsIP = AThread->Connection->Binding->PeerIP;
    Client->VmsID = GetVmsID(Client->VmsIP);
    Client->Thread = AThread;
...
}

// cVmsClient 클래스의 헤더파일
class cVmsClient : public TObject {
private:
    int             CommStat;
public:
    AnsiString      VmsID;
    AnsiString      VmsIP;
    void*           Thread;
    TTimer*         CommTimer;
    cVmsClient(TComponent* Owner);
...
    void __fastcall OnCommTimer(TObject *Sender);
};

// cVmsClient 클래스의 cpp파일
cVmsClient::cVmsClient(TComponent* Owner) {
    CommTimer           = new TTimer(Owner);
    CommTimer->Interval = 3000;
    CommTimer->OnTimer  = OnCommTimer;
    CommTimer->Enabled  = true;
...
}
void __fastcall cVmsClient::OnCommTimer(TObject *Sender)
{
...
}

//------------------------------------------------------------------

이 함수만 적어드리면 되겠죠?

이상한 점은 cVmsClient클래스를 TfrmMain안의 Connect와 상관없는 아무 함수에서

생성하면 타이머는 정상적으로 동작합니다.

꼭 TCPServerConnect()함수 안에서만 안되네요..

왜 그런지 가르켜주시겠습니까? ^^;;

+ -

관련 글 리스트
27945 [질문] TTimer에 관한 질문입니다. 김현규 1084 2003/11/21
34020     Re:[질문] TTimer에 관한 질문입니다. 김현규 896 2003/11/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.