|
임펠리테리입니다.
죄송하지만, TTimer를 상속받아서는 불가능합니다.
TTimer에 있는 OnTimer 이벤트의 타입은 TNotifyEvent 타입으로서, 원래 그렇게 생겨먹은 놈이라 변경이 안됩니다.
대신 새 이벤트를 추가할 수 있습니다만, 기존의 이벤트를 없앨 수는 없습니다.
새로 만들 이벤트는 기존의 TNotifyEvent 와 달라야 하므로, 새로운 이벤트 타입을 만들어야죠.
그런데, TTimer 클래스에서 실제로 win32 루틴을 호출하는 UpdateTimer() 함수(private 함수임)는 기존의 OnTimer가 NULL인가를 검사해서 NULL이면 아예 타이머 구동을 하지 않습니다.
그래서 TTimer를 상속받아서는 안되구요.
TTimer루틴을 그대로 복사해와서 새 컴퍼넌트를 만들어야 합니다. 이때도 역시 새 이벤트를 만들어줘야 하구요.
그럼 참고하시길...
향기 님이 쓰신 글 :
: 새로운 Timer 를 만들려구 합니다 NTimer 라고 하죠...
: 어떻게 만들거냐면 Timer 에다 반복 횟수를 인자로 주면 그때되면 자동으로 사라지게요...
:
: 어떻게 다음과 같이 인자를 넘길 수 있겠습니까 ???
:
: 그럼...
:
:
: void __fastcall TfrmTest::MyTimer1Timer(TObject *Sender, int repeatCounter)
: |
: --------> 새로추가된 인자
: {
:
: Memo1->Lines->Add("My Timer 1");
:
: }
:
|