W Twoim wypadku TTimer
będzie bardzo dobrym rozwiązaniem, ale w przeciwieństwie do kolegi @pelsta poleciłbym Ci zrobić sobie listę zdarzeń, które mają zostać wykonane o określonej godzinie i dniu; Możesz je przechowywać w specjalnie przygotowanej macierzy czy liście - jak tam chcesz - i ustawić interwał tajmera na 1 min
('60 000 ms'); W zdarzeniu OnTimer
(jest tylko jedno...) pobierzesz aktualny czas z systemu i przeszukasz macierz czy występuje jakieś zdarzenie, które ma zostać w danej minucue wykonane; Jeżeli tak - wykonujesz je i usuwasz z kolejki; Tu można by napisać klasę do przechowywania kolejki zdarzeń i jej edycji - byłoby bardziej elegancko i profesjonalnie, niż ciągle ręcznie zaśmiecać kod zbędnymi operacjami;
Więc polecam Ci:
- napisać klasę zawierającą kolejkę zdarzeń,
- oprogramować ją pod kątem edycji zdarzeń, dodawania, usuwania, przenoszenia i przeszukiwania,
- stworzyć tajmera (w klasie kolejki) z ustawionym interwałem na
1 min
- tworzyć tajmera podczas rozruchu aplikacji i usuwać go podczas zamknięcia
tyle wystarczy, by program działał bez zarzutu i był na tyle funkcjonalny, by swobodnie z niego korzystać;
Jeśli nie znasz jeszcze programowania obiektowego to utwórz sobie osobny moduł, w którym zaimplementujesz odpowiednie procedury / funkcje realizujące to, o czym napisałem w punktach; Jednak klasa byłaby lepszym rozwiązaniem;
Jeszcze jedno, jeśli chodzi o czas wykonania zdarzenia:
Quincy6 napisał(a)
- względnie, np. za 3 godziny 10 minut i 5 sekund
Dodajesz zdarzenie do kolejki, a czas ustawiasz w ten sposób:
- pobierasz aktualny czas z systemu
- dodajesz do niego
3 godziny, 10 minut i 5 sekund
Quincy6 napisał(a)
Tak samo, dodajesz zdarzenie do kolejki z określonym czasem;
Podczas operacji dodawania zdarzenia do kolejki przyda się znalezienie odpowiedniego miejsca po to, by zdarzenia były posortowane od tej, która będzie wykonana najwsześniej, do tych najbardziej odległych w czasie;
Dasz radę to zrobić - poczytaj tylko o module DateUtils
i jego procedurach / funkcjach oraz o podstawach programowania obiektowego;