Porównywanie dat (fragment kodu)

0

Witam (Wyedytowałem TEMAT)
Mianowicie działa już porownywanie dat, wszystko GITARA może zrobiłem to niezbyt przejżyscie jednak chciałem się dowiedzieć jak teraz mógłbym zrobić aby daty się odświeżały cyklicznie.

Gdy włącze program, on automatycznie sprawdzi wpisy i te których daty pokrywają sie wyświetli z odpowiednim komunikatem. Jednak działanie to wykona się jednorazowo.

Załóżmy zmienia się godzina 23:59 na 0:00 a więc i dzien z 6.1.2008 na 7.1.2008 i chciałbym, aby program także pokazał komunikat. Nie robi tego pownieważ odczyt daty następuje tylko raz, czy ktoś pomoże ?

screen

0

Nie dam głowy bo chwilę się builderem nie bawiłem ale czy czasem ListBox->ItemIndex nie jest jakimś stringiem? a porównujesz go z intem.

0

właśnie zastanawiałem się nad tym czy nie jest stringiem ... kompilator nie wyrzuca żadnych błędów więc zaufałem mu ze jest OK. Dla pewnosci wstawilem Label ktoremu przypisalem wartosc
ListBox->ItemIndex=Label; no i Label pokazuje normalnie postać liczbową wydaje mi sie, że powinno byc ok ale to tylko "wydaje" moze masz racje ktoś sie jeszcze wypowie lub podpowie jak to poprawic ? (komunikat wciąż nie chce sie pokazywac równo o północy) :-P ;-P

0

<ściana> Ehh bez przesady, Label to już na pewno nie jest intem. Zainwestuj w konwersję ze stringa na int przed porównaniem.

0

A to nie jest przypadkiem tak że data nigdzie mi sie nie odświeża ?
Wydaje mi się że ona raz sie przypisuje do programu i już tak zostaje. Pomimo zmiany daty systemowej ta będzie wciąż załadowana taka jak przy odpaleniu programu.

Poza tym wydaje mi się, że popełniam błąd w ListBox1->ItemIndex; ponieważ ItemIndex jest tablicowane od zera a jak wpisze tak jak wpisalem nigdzie mi nie sprawdzi pozostałych terminów...

0

Grzybu nie rób sobie jaj ... wiem ze Label nie jest intem ale chodzilo mi o to ze wyswietla liczbe jako cyfre poza tym teraz działa zapomnialem ze ItemIndex działa tablicowo

if((ListBox3->Items->Strings[0]==DzienI)&&(ListBox4->Items->Strings[0]==MiesiacI)&&(ListBox5->Items->Strings[0]==RokI))
{
ShowMessage("Przypomnienie !!");
}
}

Teraz problem jak sprawdzic wszystkie terminy chyba zrobie pętle iteracyjną myslicie ze do bedzie dobry pomysł ?. ;-P
Wydaje mi sie ze to może nie zadziałać poprawnie :(

0

Po co? Itemy sortujesz po datach, zrobione wyrzucasz, danego dnia będzie pare przypomnień to po nich lecisz... ot szybko i zwięźle. A co do sortowania: sortuj przy wstawianiu, od razu odrzucaj błędne wpisy i zamiast problemu masz proste rozwiązanie.

Co do daty... no cóż, data ci się nie aktualizuje i jest lipa. Rozwiązanie łopatologiczne: timer, ale nie taki co sekunde, ale np. co minutę albo nawet rzadziej, zależy od rozdzielczości daty jaki Ci potrzebna.

0

ok wyedytowałem temat na samym początku prosze o ponowne przeczytanie, ponieważ niektóre problemy zostały już rozwiązane...

Bieżącym problemem zostaje odświeżanie daty, ktoś pomoże ?. pozdrawiam ;-P

0

Mówiłem... Ech...

  1. Zmienne DzienI, MiesiacI, RokI dajesz jako część klasy Form
  2. Wrzucasz Timera na form a w ontimer dajesz mu odświeżanie daty i przy okazji w ontimer dajesz sprawdzanie czy w danym dniu nie ma nowych przypomnień i gotowe.

proste łopatologicznie, prościej to już tylko napisać zamiast Ciebie.

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