Powiadamiacz

jjczopek
  • Rejestracja: dni
  • Ostatnio: dni
0

mam taki kod:
procedure TForm1.comboChange(Sender: TObject);
var D:TDate;
data:TDate;
czas:TTime;
R:Real;
begin
LongTimeFormat:='HH:mm';
INI:=TINIFile.Create(GetP()+'plan_lekcjidane'+'dane_'+list.Items[list.itemindex]+'wyd.ini');
typ.Caption:=INI.ReadString(combo.Text,'typ','');
kiedy.Caption:=DateToStr(INI.ReadDate(combo.Text,'kiedy',0));
opis.Caption:=INI.ReadString(combo.Text,'opis','');
D:=INI.ReadDate(combo.Text,'K_pow',0);
data:=Date;
R:=D-data;
if R=0 then
tim.Enabled:=True;
end;

i taki:
procedure TForm1.timTimer(Sender: TObject);
var G:TTime;
czas:TTime;
R:Real;
begin
LongTimeFormat:='HH:mm';
INI:=TINIFile.Create(GetP()+'plan_lekcjidane'+'dane_'+list.Items[list.itemindex]+'wyd.ini');
G:=INI.ReadTime(combo.Text,'G_pow',0);
czas:=Time;
R:=G-czas;
if R=0 then
ShowMessage(combo.Text+' - '+opis.Caption);
end;

I to ma być powiadamiacz. Ale jak daty się zgadzają, to sie nie wyświetla komunikat nawet jak godziny są równe.

Szymek
  • Rejestracja: dni
  • Ostatnio: dni
0

A włączyłeś Timera?
Nie sądze żeby udało Ci się z czasem trafić co do milisekundy.

jjczopek
  • Rejestracja: dni
  • Ostatnio: dni
0

[code]R:=D-data;
if R=0 then
tim.Enabled:=True;
end;[/code]

Raczej tak, looknij na kodziki na górze

mirekpil
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 481
0

Ja może, ci nie pomogę ale:

  1. jak podajesz kod to przed kodem wpisz ,
    a za // bez spacji oczywiście

  2. pamiętaj o INI.Free , zwłaszcza w zdarzeniu onTimer

  3. Kiedy w Ontimer dajesz:
    ShowMessage(combo.Text+' - '+opis.Caption);
    to zatrzymaj timera do czasu, aż użytkownik zamknie okno komunikatu (lepiej wstaw dialog z opcją nie przypominaj więcej)

  4. wstaw na czas testów linie :
    Labelx.caption := DateToStr(D)
    Labelx.caption := DateToStr(Data)
    i zobacz co ci wpisze

  5. R:=D-data; // zatrzymaj program w tym mjejscu i zajrzyj na wartość zmiennej R
    nie wystarczy że bedzie ta sama data i godzina, milisekundy też muszą być zgodne (zaokroglaj wynik)

jjczopek
  • Rejestracja: dni
  • Ostatnio: dni
0
  1. R:=D-data; // zatrzymaj program w tym mjejscu i zajrzyj na wartość zmiennej R
    nie wystarczy że bedzie ta sama data i godzina, milisekundy też muszą być zgodne (zaokroglaj wynik)

nawet jak mam LongTimeFormat:='HH:mm';
??

Szymek
  • Rejestracja: dni
  • Ostatnio: dni
0

To obowiązuje przy konwersji na String. Może porównuj stringi. ;p

Vogel
  • Rejestracja: dni
  • Ostatnio: dni
0

Może zmień warunek = na > lub

jjczopek
  • Rejestracja: dni
  • Ostatnio: dni
0

jak porównałem stringi, to wsio poszło po mojej mysli. Dzięki Szymek. [browar]

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.