|
아, 그렇군요..
근데 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 이벤트 코드자체를 동적으로 생성할 수도 없고..
:
: 이것이 문제입니다... 그럼 수고하세요
|