hmmmmm.... chciałem się poradzić programerów co
sądzicie o czymś co mi się wydaje być jakimś bugiem
w Delphi, chodzi o zwrot funkcji, kiedy pisze
Result := coś to wszystko jest OK ale kiedy zajdzie
potrzeba zapisu w pętli Result := Result + coś to
też niby działa a jednak jakoś dziwnie.
Powiedzmy że mamy przykładowoą funkcję:
function dupa(s: string): string;
begin
Result := Result + s;
end;
i teraz kidy posłużymy się takim kodem:
var
i : integer;
begin
i := 40;
ShowMessage(dupa(Chr(i)));
i := i + 1;
ShowMessage(dupa(Chr(i)));
i := i + 1;
ShowMessage(dupa(Chr(i)));
i := i + 1;
ShowMessage(dupa(Chr(i)));
i := i + 1;
ShowMessage(dupa(Chr(i)));
//i.t.d. . . .
end;
to działa to znaczy wyświetla MessageBoxy
z poszczególnymi znakami, kiedy jednak
napiszemy taki kod:
var
i : integer;
begin
for i := 40 to 50 do ShowMessage(dupa(Chr(i)))
end;
no właśnie, sami zobaczcie, mnie to brzydko pachnie
i wcale nie jestem z tego zadowolony a zwłaszcza
że to mi się wydaje nie logiczne że najpierw wyświetla
jeden znak potem dwa znaki potem trzy i cztery itd...
Może mi to ktoś racjonalnie wytłumaczyć ?