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.115 pregleda

Najnovija ↓

jedno pitanje oko.. :) 01.12.2009. u 12:32 · pre 205 meseci
izmenjeno 1 put, poslednji put Dementia 01.12.2009. u 13:21
  1. Dementia01.12.2009. u 13:21zapis iz teksta poruke
#1
Code:

procedure update;
begin
  if DownloadFile(MyURL, GetMyDir + 'text.txt') then
  begin
      if FileExists(GetMyDir + 'text.txt')then read_file;
  end
  else
    ShowMessage('An error occurred.')
end;




Server mi cesto trokira nesto, i onda kada se pozove ova funkcija iz mog programa, program totalno zablokira, jer ne moze da preuzme fajl kada server pocne da zeza... i tek posle 20-ak sekundi prikaze ShowMessage('An error occurred.'). -Prikazuje odmah ovu poruku ako je server totalno off...

Kako da uradim neki tajmer recimo da ako nema odgovora za 4 sekunde, da prikaze poruku ShowMessage('An error occurred.')

Ako moze neki primer koda bio bih puno zahvalan!

Poz.
Re: jedno pitanje oko tajmera..? :) 01.12.2009. u 12:41 · pre 205 meseci #2
Koristi try/except funckiju i u okviru nje dodaj da se uključi timer (timer1.enabled:=true)
Potpis
ERROR974
Re: jedno pitanje... :) 01.12.2009. u 13:21 · pre 205 meseci #3
Vec koristim try/except

ovo se poziva

function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;


Ne bih da koristim tajmere (pogresno sam nazvao temu, sad cu da ispravim :) ), vec planiram GetTickCount, ali ne znam kako bih to mogao da izvedem...
Re: jedno pitanje oko.. :) 01.12.2009. u 15:02 · pre 205 meseci #4
> Kako da uradim neki tajmer recimo da ako nema odgovora za 4 sekunde, da prikaze poruku ShowMessage('An error occurred.')
> if DownloadFile(MyURL, GetMyDir + 'text.txt') then

Pozivaš funkciju u blokirajućem obliku (tek kada se završi vraća e kontrola programu), možeš je ili koristiti u neblokirajućem (asinhronom) prosleđivanjem i poslednjeg callback parametra, prebacivanjem downloada u poseban thread ili upotrebom drugih biblioteka za download koji dopuštaju i timeout (npr, Indy, Synapse...)
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: jedno pitanje oko.. 01.12.2009. u 19:06 · pre 205 meseci #5
Pa i sa threadom korisnik ima da ceka pola minuta(tj dok mi server trokira, tj radi JAKO usporeno preko dana) dok dobije odgovor, doduse program nece da zablokira, ali korisnik nece isto brzo dobiti odgovor da server nije dostupan... ovo moze da se resi iz jedne do dve linije koda, proveravanjem proteklog vremena, ako npr za 4 sekunde nema odgovora od servera, bez ikakvih threadova, ali ne znam kako to da izvedem...


Potrazicu odgovor na drugom forumu, hvala u svakom slucaju.
Poz
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme