Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 2.308 pregleda

Najnovija ↓

Auto kontrola vremena - ne prikazuje rezultat 16.02.2016. u 02:30 · pre 130 meseci #1
Pozdrav.

Imam tri Edit-a u svakom editu je postavljeno vreme koje se medjusobno razlikujua zatim imam dva tajmera jedan prikazuje proteklo vreme a drugi
vrši kalkulaciju izmedju ovih tri edita i treba da mi prikaže rezultat izmedju ovih tri edita u labelu u mom slučaju je to Label1.

Evo koda:

Code:

procedure TForm1.FormShow(Sender: TObject);
begin

 timer1.enabled:=True;
 timer2.enabled:=true;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label14.Caption :=formatdatetime('hh:nn:ss',now);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin

  if (label14.Caption > maskedit1.Text) and (label14.Caption <= maskedit2.Text) then
begin
  Label1.Caption:='1';
  end else
  if (label14.Caption > maskedit2.Text) and (label14.Caption <= maskedit3.Text) then
begin
  Label1.Caption:='2';
  end else
  if (label14.Caption > maskedit3.Text) and (label14.Caption <= maskedit1.Text) then
begin
  Label1.Caption:='3';
end;


E sada mi je tu problem pri pokretanju aplikacije neće da automatski prikaže da li je to 1,2,3 samo kada izvršim promenu vremena u bilo kom editu
onda kada proteklo vreme prodje zadato vreme tada automatski prebaci broj 1 ili 2 ili 3 a na pokretanju forme neće da detektuje.
Ili treba neka izmena u kodu ili da se nešto doda molim za pomoć.
Potpis
Boban
Re: Auto kontrola vremena - ne prikazuje rezultat 16.02.2016. u 02:54 · pre 130 meseci #2
Najlakše je da u OnFormShow ili OnFormCreate eventu forme pozoveš Timer2Timer metodu, npr: Timer2Timer(Self);

Alternativa je (malo lepše organizovana ali radi istu stvar) da ceo kod iz Timer2Timer metode prebaciš u posebnu proceduru koju ćeš nazvati recimo Calculate.
Dalje sve što si imao u Timer2Timer metodi obrišeš i samo ostaviš poziv ka Calculate. I na kraju u OnShow ili OnCreate isto pozoveš Calculate.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Auto kontrola vremena - ne prikazuje rezultat 16.02.2016. u 09:24 · pre 130 meseci #4
Code:
procedure TForm1.Calculate;
begin
  if (GetTime > StrToTime(maskedit1.Text)) and (GetTime <= StrToTime(maskedit2.Text)) then
begin
  Label1.Caption:='1';
  end else
  if (GetTime > StrToTime(maskedit2.Text)) and (GetTime <= StrToTime(maskedit3.Text)) then
begin
  Label1.Caption:='2';
  end else
  if (GetTime > StrToTime(maskedit3.Text)) and (GetTime <= StrToTime(maskedit1.Text)) then
begin
  Label1.Caption:='3';
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
  Timer1.Enabled:=True;
  Timer2.Enabled:=True;
 // Calculate;   nepotrebno
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label14.Caption :=formatdatetime('hh:nn:ss',now);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
Calculate;
end;
Potpis
Nikad izvini!
Re: Auto kontrola vremena - ne prikazuje rezultat 16.02.2016. u 09:32 · pre 130 meseci #5
Idi po breakpointovima. Mislim da imaš situaciju kada ti nije zadovoljen niti jedan uvjet. I ja ne bi baš na taj način provjeravao koje vrijeme je veće a koje manje. Nisam 100% siguran da će ti to uvijek dobro raditi. Narpavi funkciju gdje uspoređuješ vrijeme a ne stringove.
Potpis
F
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme