Imam kreiranu klasu:
Code:
tSalda=class
...
private
fAkt: integer;
...
public
procedure First;
property Recno: integer read fAkt write fAkt;
...
end;
...
procedure tSalda.First;
begin
ShowMessage(IntToStr(fAkt));
Recno := 0;
ShowMessage(IntToStr(fAkt));
self.fAkt := 0;
ShowMessage(IntToStr(fAkt));
fAkt := 0;
ShowMessage(IntToStr(fAkt));
while (fAkt < Length(fRate)) and (not OkFilter) do
fAkt := fAkt + 1;
if fAkt >= Length(fRate) then begin
fAkt := -1;
fEof := true;
end;
end;
tSalda=class
...
private
fAkt: integer;
...
public
procedure First;
property Recno: integer read fAkt write fAkt;
...
end;
...
procedure tSalda.First;
begin
ShowMessage(IntToStr(fAkt));
Recno := 0;
ShowMessage(IntToStr(fAkt));
self.fAkt := 0;
ShowMessage(IntToStr(fAkt));
fAkt := 0;
ShowMessage(IntToStr(fAkt));
while (fAkt < Length(fRate)) and (not OkFilter) do
fAkt := fAkt + 1;
if fAkt >= Length(fRate) then begin
fAkt := -1;
fEof := true;
end;
end;
kod koji poziva proceduru:
Code:
procedure tSalda.UrediKamatu;
begin
Sort;
First;
...
end;
procedure tSalda.UrediKamatu;
begin
Sort;
First;
...
end;
ShowMessage u proceduri je samo radi ispisa vrijednosti...
Recno := 0 bi trebao napraviti isto što i fAkt := 0
međutim...
ShowMessage ispiše: prvi puta 1 (ok - jedan slog), ostalih 3 puta - 0 i to je ok
debuger (dodano u watch list: fAkt i Recno) za oba prikazuje vrijednost 1 !!! u while nikada ne uđe jer nije (1 < 1)
Pokušao sam komentirati Sort, rezulata je isti...
Ima li tko ideju o čemu se radi?