Rejestr/strring/integer

0

mam taki maly a zarazem strasznie dziwny problem. Przy starcie programu (w onCreate) Mam Reg.ReadString('ilosc'); w skrocie z rejestru ma zostać pobrany string z cyfrą następnie zamieniam go na integera strtoint i ODEJMUJE OD NIEGO 1 i zapisuje do rejestru znow jako string nową ilosc (po drodze jest wyswietlana w kilku miejscach wiec dlatego latwiej mi bylo uzyc stringa) -- i tu pojawia się dziwny problem

p := Reg.ReadString('ilosc');
k:= strtoint(p);
k:= k-1;
p:=inttostr(k);
Reg.WriteString('ilosc',p);

za pierwszym uruchomieniem probraframu mam wiec 130-1 i to daje 129 i taka wartosc jest zapisywana do rejestru, niestety przy kolejnych uruchomieniach zamiast pojawiac sie kolejno wartosci 128, 127,126 itd. w wyniku odejmowania pojawia sie kolejno 129, 119, 109, 99, 89, 79 itd.
Nie umie sobie z tym poradzic -- odejmuje przeciez 1 a dostaje w wyniku cos jak bym odejmowal 10. Probowalem zmienic pozniej na Reg.WriteInteger('ilosc',130) - ale to nic nie dalo i dale jest ten blad!

0

A czemu string?? nie łatwiej ta:

p := Reg.ReadInteger('ilosc');
p:= p-1;
Reg.WriteInteger('ilosc',p);
0

w OnCreate formy daje :

var

reg:tregistry;
a : integer;
begin
reg:=Tregistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
try
reg.OpenKey('Software\Tomek',True);
a := reg.ReadInteger('tt');
a := a -1;
reg.WriteInteger('tt',a);
reg.CloseKey;
reg.Free;
except
reg.free;
showmessage('Nie udalo sie :/');
end;
end;

I dziala elegancko, czyli odejmuje od zapisanej wartosci 1 przy kazdym uruchomieniu.

0

No, i wszystko sie udalo, ja i tak nie umiem niestety korzystac z rejestru :-/ , ale mam zamiar sie nauczyc

Please, no more stupid questions...
(Nie bierz tego tak do siebie)

Snowak [cygaro]

Ostatnio zmodyfikowany: miliardy lat temu przez starożytnych ludzi

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