|
혹시
DeferedTransferTimer를 생성자에서 DeferedTransferTimer = NULL로 설정하셨나요?
간혹 DeferedTransferTimer에 NULL이 아닌 쓰레기 같이 들어가는 경우가 종종 발생합니다.
이범상 님이 쓰신 글 :
: 제가 어떤 클래스를 생성해서 그 안에 Timer를 두었습니다.
:
: __fastcall THello::THello(TComponent* Owner)
: : TComponent(Owner)
: {
: ...
: DeferedTransferTimer = new TTimer(this);
: DeferedTransferTimer->Interval = 3000;
: DeferedTransferTimer->OnTimer = OnDeferedTransferTimer;
: DeferedTransferTimer->Enabled = false;
: }
:
: 위 처럼 Hello라는 클래스를 생성하고 생성자에 Timer의 설정을 해두면 타이머에 설정된
: OnDeferedTransferTimer() 함수가 제대로 실행 됩니다.
:
: 그러나 생성자에서 말고 어떤 루프를 돌다가 IF문에 걸렸을 경우 아래와 같은 DeferedTransfer() 함수를 들어가게 되면
: OnDeferedTransferTimer() 함수가 제대로 실행 되지 않습니다.
:
: void __fastcall THello::DeferedTransfer()
: {
: if (DeferedTransferTimer == NULL)
: DeferedTransferTimer = new TTimer(this);
:
: DeferedTransferTimer->Interval = 3000;
: DeferedTransferTimer->OnTimer = OnDeferedTransferTimer;
: DeferedTransferTimer->Enabled = true;
: }
:
: 타이머 설정을 생성자에서 하지 않고 특정 함수를 콜할 경우 설정되게 하는방법은 없습니까???
: 아님 어떤 다른 방법이 있습니까???
:
: 고수님들 알켜주십시요. ^^
|