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
[10373] Re:Re:Re:Timer를 여러개 쓰려면..
개박살.U&I [inutero] 1476 읽음    2001-08-28 18:03

아, 그렇군요..

근데 OnTimer를 당연히 동적으로 코드를 생성해낸다는건 불가능하죠..

하나의 OnTimer함수를 만들어서 무슨 타이머에서 호출이 된건지를 알아야하는데...

만약 타이머가 그냥 생성이 되어있다면 이렇게 해주면 될텐데요? 그쵸?

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    if       (dynamic_cast<TTimer *>(Sender) == Timer1)    {
    } else if(dynamic_cast<TTimer *>(Sender) == Timer2)    {
    } else if(dynamic_cast<TTimer *>(Sender) == Timer3)    {
    } else if(dynamic_cast<TTimer *>(Sender) == Timer4)    {
    }
}

타이머 배열을 관리하셔야 가능할꺼 같군요..

과연 몇개의 타이머가 동적생성되어있는지

그중에 어떤타이머로 인해서 함수가 불려졌는지만 알아내시면 되겠네요..

    if       (dynamic_cast<TTimer *>(Sender) == Timer1)    {
    } else if(dynamic_cast<TTimer *>(Sender) == Timer2)    {
    } else if(dynamic_cast<TTimer *>(Sender) == Timer3)    {
    } else if(dynamic_cast<TTimer *>(Sender) == Timer4)    {
    }

이부분을 for문으로 바꾸어주면 가능할찌도 ^^;;

for(int i=0; i<타이머갯수; i++)  {
    if((dynamic_cast<TTimer *>(Sender) == Timer[i]) {
        i번째 타이머가 불려졌으니 이걸 i번째 타이머처리 부분을 잘짜야... --;
    }
}

i를 기준으로 코딩을 하셔야..

이론.. 또, 허접답변이 되었네요.. 물론 제생각입니다.

참고정도는 하세요~~!! 휘리릭


chobo 님이 쓰신 글 :
: 답변은 감사합니다만.. 제가 말씀드린것은 그게 아닌데요... 님이 말씀 하신것은 한의 Timer 를 동적생성 하는 것을 말씀 하는것 같은데요.. 제목에도 있듯이 Timer를 여러개 쓸경우가 궁금합니다..
:
: Timer 갯수가 정해져 있지 않기 때문에 Timer 가 몇개 생성될지를 모릅니다.. 뭐 배열로 잡으면이야 해결이 되겠지만... 문제는 OnTimer 이벤트입니다.. OnTimer 이벤트 코드자체를 동적으로 생성할 수도 없고..
:
: 이것이 문제입니다... 그럼 수고하세요

+ -

관련 글 리스트
10360 Timer를 여러개 쓰려면.. chobo 1318 2001/08/28
10369     Re:Timer를 여러개 쓰려면.. 개박살.U&I 2814 2001/08/28
10371         Re:Re:Timer를 여러개 쓰려면.. chobo 1231 2001/08/28
10373             Re:Re:Re:Timer를 여러개 쓰려면.. 개박살.U&I 1476 2001/08/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.