Novo

Forum kao aplikacija na telefonu

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

  • 9 odgovora
  • 5.297 pregleda

Najnovija ↓

Kako napraviti Count down 03.10.2003. u 17:37 · pre 280 meseci #1
Ovako muci me jedna stvar, ne znam napraviti count down
na internetu sam nasao par komponenti ali to nista neradi, kada god pokren program sa takvim komponenta delphi mi zablokira
Moze li mi netko objasniti kako napravi Count Down bez componenti tj. iz citog coda
bez komponenti.
Hvala
Potpis
--=DruiD=--
Re: Kako napraviti Count down 03.10.2003. u 17:44 · pre 280 meseci #3
count down ti je timer koji broji vrijeme unazad
naprimjer od 20 to 0
Potpis
--=DruiD=--
Re: Kako napraviti Count down 03.10.2003. u 17:54 · pre 280 meseci #4
Citat:
Druid:
count down ti je timer koji broji vrijeme unazad
naprimjer od 20 to 0


U cemu je problem koristiti obicnu timer kontrolu? Uz malo kreativnosti, mozes vreme da prikazes i unazad. Ne mogu da ti napisem tacan primer (ne trosim Pascal/Delphi), ali:

Timer ima neki OnTimer event koji "okida" svake sekunde. Postavis tajmer da broji, a u drugom delu programa definises broj sekundi kad ti se zavrsava countdown. Recimo 20s. Prikazes na ekran: 00:BrojSekundi. Kad tajmer okine, prikazes na ekran: 00:BrojSekundi-1, itd... Efektivno imas countdown. Mozes i da pratis dokle je ono "-1" stiglo, pa kad se istrosi zadati broj sekundi, "okines" event koji kaze da je vreme isteklo...


Marko.
Potpis
OV SM
LA PK
Re: Kako napraviti Count down 03.10.2003. u 19:46 · pre 280 meseci #5
Definisi promenjivu "Vreme : integer" u npr. public sekciji forme. Stavis na formu TTimer i jedan button. Za button OnClick postavi:

Code:

procedure TForm1.Button1Click(Sender: TObject);
begin
     Vreme := GetTickCount;
     Timer1.Enabled := true;
end;


Postavis Timer1.Interval na 1000 (1 sekunda) i Enabled = False, pa na OnTimer event postavis kod:

Code:

procedure TForm1.Timer1Timer(Sender: TObject);
Var Razlika : dword;
    sati, minuti, sekunde : integer;
begin
     Razlika := 7000 - ((GetTickCount - Vreme) div 1000);
     Sati := Razlika div 3600;
     Minuti := (Razlika - (Sati * 3600)) div 60;
     Sekunde := (Razlika - (Sati*3600) - (Minuti*60));
     Caption := Format('%d : %d : %d', [Sati,Minuti,Sekunde]); 

     if Razlika <= 0 then Timer1.Enabled := false;
end;


Onih "7000" gore predstavljaju pocetnu vrednost za odbrojavanje. U tvom primeru tu bi pisalo "20". Ostaje da prilagodis kod nekoj nameni.


Re: Kako napraviti Count down 03.10.2003. u 20:46 · pre 280 meseci #6
Hvala Ljudi radi

Nisam znao da to moze biti tako jednostavno....

Morlic vidim da si radio dword mozes li mi na mail poslati kako se on opcenito koriste
naime treba mi za jedan program da mi izvadi nesto iz regedita i disable ga

moj mail je :

[email protected]

Puno HVALA!!!
Potpis
--=DruiD=--
Re: Kako napraviti Count down 04.10.2003. u 01:48 · pre 280 meseci #8
Evo ti ove dve funkcije koje mozes da koristis za pristup registry bazi preko TRegistry klase koju dobijas uz Delphi. Funkcije citaju i pisu integer vrednosti.

Primer

Code:

...
Var i : integer;
...
if Int_LoadFromReg(i, 
                          HKEY_CURRENT_USER,
                          '\SOFTWARE\Druid\Proba', 
                          'NazivPodatka')
   then radi nesto sa "i"
...



Code:

function Int_LoadFromReg( Var Value : integer; DefaultRootKey : HKEY, Key, ValueName : string ) : boolean;
Var Reg : TRegistry;
begin
      Result:=false;
      Reg := TRegistry.Create;
      try
        Reg.RootKey := DefaultRootKey;
        if Reg.OpenKey( Key, True)
        then begin
               if Reg.ValueExists( ValueName ) then begin
               Value:=Reg.ReadInteger( ValueName );
               Result:=true;
               end;
        Reg.CloseKey;   
        end;
      finally
      Reg.Free;
      end;

end;
function Int_SaveToReg( Value : integer; DefaultRootKey : HKEY, Key, ValueName : string ) : boolean;
Var Reg : TRegistry;
begin
     Result:=false;
      Reg := TRegistry.Create;
      try
        Reg.RootKey := DefaultRootKey;
        if Reg.OpenKey( Key, True)
        then begin
        Reg.WriteInteger( ValueName, Value );
        Reg.CloseKey;
        end;
      finally
      Reg.Free;
      end;

      Result:=true;
end;
Re: Kako napraviti Count down 04.10.2003. u 01:56 · pre 280 meseci #9
Inace dword je tip podatka:

DWORD = Longword

a Longword je tip podatka koji moze da memorise brojeve u
rasponu 0..4294967295, sto se kaze "unsigned 32-bit"
tj. neoznaceni tridesetdvobitni broj.


DWORD je samo drugi naziv za Longword i primarno se koristi
zbog Windows API funkcija koje cesto imaju parametre tog
tipa.

I integer je tridesetdvobitni podatak ali oznacen:

Integer : -2147483648..2147483647 "signed 32-bit"

i zbog toga moze da pamti i negativne vrednosti do
pomenutog opsega.
Re: Kako napraviti Count down 04.10.2003. u 16:36 · pre 280 meseci #10
Samo da dodam da bi mozda bilo bolje koristiti TRegIniFile umesto TRegistry jer dobijas kod koji je maltene identican (ali u svakom slucaju kompatibilan) onom koji koristis kad hoces da pises ini fajlove (cisto za slucaj da se predomislis).
Znam da je ovo samo primesa, ali eto, ipak da dodam...
Pozdrav
Potpis
Don't try to impress me... I'm good !
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme