Implementation

Я специально объявил их там, чтобы показать тебе, как можно пользоваться функциями не принадлежащими ни одному объекту. Здесь функция SlashSep объявлена не внутри объекта, значит она никому не принадлежит.

Вообще-то самостоятельные функции не обязательно где-либо объявлять. Ты можешь без проблем просто реализовать её и нигде не описывать. Но ты должен учитывать, что если ты где-то хочешь использовать эту функцию, то реализация обязательно должна быть раньше. Вот пример правильного использования самостоятельной процедуры/функции:

procedure Examp;
begin
end;

procedure Form1.Examp2; begin Examp; end;

В этом примере я создал самостоятельную процедуру Examp и метод объекта Form1

– Examp2. Из метода Examp2 я вызываю самостоятельную процедуру Examp. Этот код

правильный, потому что процедура сначала реализовывается, а потом уже используется. А теперь посмотри на неправильный код:

procedure Form1.Examp2; begin Examp; end;

procedure Examp;
begin
end;

В этом примере я пытаюсь вызвать процедуру, которая реализована после вызова и поэтому компилятор выдаст ошибку. Чтобы этого избежать, самостоятельные процедуры можно описывать в разделе var:

var procedure Examp;

procedure Form1.Examp2; begin Examp; end;

procedure Examp;
begin
end;

А теперь давай посмотрим, как же выглядит функция SlashSep: