Cześć, mam funkcję:
function UsunZnaki(b: String): String;
begin
Delete(b,Pos('-',b),1);
Delete(b,Pos(':',b),1);
if Pos('-',b) > 0 then UsunZnaki(b);
if Pos(':',b) > 0 then UsunZnaki(b);
Result := b;
end;
funkcja dostaje zmienną w której występuje '-' i ':' i w trakcje działania krok po kroku funkcja działa prawidłowo, usuwa mi zbędne znaki. W chwili kiedy usunie już wszystkie zbędne znaki przechodzi do linii Result := b; i tak mi się wydaje że powinna zakończyć się funkcja i wartość zmiennej b powinna wrócić do miejsca wywołania funkcji. Tak nie jest, funkcja zaczyna odtwarzać wcześniejszą wartość zmiennej b tzn, wstawia do zmiennej '-' i ':' i po odtworzeniu zmiennej zwraca ją do miejsca wywołania.
Czemu tak się dzieje ?
Wywołanie funkcji wygląda tak:
a := UsunZnaki(nazwa);