MMTimer

0

Witam wszystkich po długiej przerwie :)

Mam następujący problem:
Zainstlowałem sobie MMTimer ze strony http://www.borland.nq.pl/components/multimedia01.html
Działa i jest super bo Interval nawet 1 ms. Problem w tym, że kiedy włączę licznik i zamkną program gdy on tyka :) to Borland jakby wykrywa buga, bo pokazuje okienko CPU.
Gdy wyłączam timer przyciskiem i zamykam program problem nie występuje.
Próbowałem dać instrukcję MMTimer1->Enable = false w zdarzeniach: OnCloseQuery, OnDestroy, OnClose ale nic nie pomaga. Po skompilowaniu i uruchomieniu bez kontroli Buildera windows nie zgłasza żadnych zastrzeżeń.

Jest to co prawda komponent na BCB 3 i 4, a ja mam 6 Personal ale innego nie znalazłem.

Czy jest możliwość "wyłączenia" tej niedogodności??
A może istnieje inny Timer, tak samo dokładny, ale nie stwarzający takich problemów pod BCB 6??
Jak ktoś ma inne pomysły jak rozwiązać ten problem to też będę wdzięczny :)

0

Nie wiadomo z tego, co napisałeś o co własciwie chodzi. Ale podejrzewam, że masz włączone przejmowanie wyjątków przez bcb. Gdybyś o opcjach ustawił na program, to chyba nic takiego nie wystąpiłoby. Albo nie wyłapujesz ich (try/catch).

0

Zrobiłem sobie przycisk który po naciśnięciu ustawia na zmianę parametr Enable MMTimera na true i false. Gdy jest ustawiony na true i wyłączam program pokazuje się okienko CPU, gdy jest ustawiony na false okienko nie pojawia się.

Wydaje mi sie że pojawienie się okienka CPU i zatrzymanie programu informuje, że jest coś nie tak. Jeśli się mylę to poprawcie mnie.

Oto kod programu:

void __fastcall TForm1::MMTimer1MMTimer(TObject *Sender)
{
x++;
Label1->Caption =x;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
MMTimer1->Interval = 1;
if (MMTimer1->Enabled) MMTimer1->Enabled = false;
else MMTimer1->Enabled = true;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1