DLL i Timerek w niej

0

Witam!

Mam taki problem. Pisze program i do niego DLL'ke. DLL'ke wczytuje przy starcie programu, a wywalam przy zamykaniu. Moja biblioteka to kilka funkcji. Ale ważne - potrzebuje mieć w niej Timerka! No więc dodałem Timer : TTimer - a później moduł ExtCtrls. Ale program powiększył się o 300 KB. I to pierwsze pytanie - czy tak musi być? Czy mogę jakoś timerka zrobić by nie dołączać całego wielkiego modułu?

No ale ważniejsze jest drugie pytanie. Otóż przy wyłączaniu program się on wykłada. Wywala błędy. Nie wiem czemu. Czy temu, że tworze Timerka tak:
Timer:=TTimer.Create(nil) - ale nie wiem jaki podać argument, bo on chce komponentu, a ja żadnego innego komponentu nie mam. Ale chyba to nie to, bo timerek działa i mierzy. Myślę więc, że problem jest przy wyłączaniu bo mój timerek nie jest "wywalany" z pamięci razem z biblioteką. Czy może coś innego?
A jeśli to to co mówię, to jak wykryć w bibliotece DLL że jest usuwana, by móc posprzątać po sobie.

0

moze Timer.Free?

mi zazwyczaj w takich przypadkach (dynamiczne komponenty) takie cos pomaga :)

0

Polecam stare dobre WinAPI ;)
Procka wykonywana przy zdazeniu (cos jak OnTimer)

procedure Proc(handle:hwnd;uMsg,idEvent,Time:cardinal);
begin
//... Jakis kod ktory byl w zdazeniu OnTimer
end;

A oto procka tworzaca timera:

procedure CreateTimer;
const
MyTimerID=$15; //unikatowe ID timera
Interval=10;     //Interval timera
begin
SetTimer(handle,MyTimerID,Interval,@Proc); //stawiamy timera
end;

//Edit : no i od razu spada rozmiar aplikacji :)

Wszystko jest chyba zrozumiale? (uwaga,nie wiem czy dobrze przetlumaczylem procke OnTimer, bo na msdn jest w C++ ; dziala, ale moze nie jest to opymalne rozwiazanie [typy zmiennych bycmoze moga byc mniejsze])

0

A jak na zawołanie włączyć/wyłączyć tego timera? Coś w stylu Timer.Enabled:=False :)

0
Dibo84 napisał(a)

A jak na zawołanie włączyć/wyłączyć tego timera? Coś w stylu Timer.Enabled:=False :)

a nie łaska zerknąć do MSDNu i zobaczyć opis funkcji SetTimer rozumiem jak się nie wie czego szukać, ale takie lenistwo to już szczyt!

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