Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

процедуры по файлам

Рег
17 Мар 2016
Сообщения
51
Реакции
0
Возможно ли раскидать процедуры в скрипте по файлам? Иногда всё же наступает тот момент, когда это действительно необходимо :)
 
Хотелось бы на это творение поглядеть =) Тот-же вопрос мучает =)
 
uses SysUtils, Classes, my_unit; // my_unit - название подключаемого юнита
Если юнитов несколько - просто перечисляйте их через запятую.
ВАЖНО! название txt файла, должно совпадать с названием юнита, т.е. в данном случае это будет my_unit.txt

Теперь перейдем к структуре юнита, она должна быть следующая:

unit my_unit;

interface

uses {имена других модулей (юнитов), которые надо подключить к данному,
чтобы иметь доступ к классам, функциям, переменным, объектам и т.п.
этих модулей в области Interface и Implementation}

{Область Interface. Здесь находятся описания типов, объектов и процедур, которые БУДУТ ВПОСЛЕДСТВИИ ВИДНЫ в других
модулях, если к ним подключить данный}

type
{описания типов и классов, к которым БУДЕТ ПРЕДОСТАВЛЕН доступ другим юнитам, если к ним подключить данный}
var
{описания объектов и переменных, к которым БУДЕТ ПРЕДОСТАВЛЕН доступ другим юнитам, если к ним подключить данный}

implementation {Реализация}

uses {здесь могут быть перечислены имена юнитов, которые могут использоваться только в реализации классов или функций/процедур }

type
{описания типов и классов, к которым НЕ БУДЕТ ПРЕДОСТАВЛЕН доступ другим юнитам, если к ним подключить данный}
var
{описания объектов и переменных, к которым НЕ БУДЕТ ПРЕДОСТАВЛЕН доступ другим юнитам, если к ним подключить данный}

{реализация классов, описанных выше в разделе type областей interface и implementation данного юнита}

end.
Все, что описано в области interface, будет доступно из других модулей, если данный модуль к ним подключить. Здесь могут находиться описания классов (только описания!), описания процедур и функций (если они не являются методами класса, то тогда достаточно будет просто указать их заголовок с параметрами в области interface), переменные, объекты, константы. Вся реализация должна находиться после ключевого слова implementation (которое в переводе как раз и означает «реализация»). В «реализации» также могут находиться описания и других типов, классов, переменных, объектов, процедур, но только тогда они никак не могут быть доступными из других юнитов.

Т.е. основная суть: чтобы сделать «что-то» доступным для других юнитов (при условии подключении данного юнита в разделе uses), необходимо описание «этого» поместить в область interface.

unit unit_1; // название юнита

interface // раздел interface
procedure procedure_1(); // описание метода, к которому будет доступ, если подключиь этот юнита куда-нибудь

implementation // раздел implementation (реализация)

procedure procedure_1(); // непосредственно сам метод
var i: integer;
begin
for i:=1 to 10 do print('Исполняем шаг ' + inttostr(i));
end;

end.
Код:
uses unit_1; // подключили наш юнит
 
begin
print('Начали основной скрипт');
procedure_1(); // вызываем метод, описанный в юните
print('Закончили основной скрипт');
end.
Модули (юниты) должны находиться в той же папке что и главный скрипт

Взято с асивин
 
спасибо! + уже не могу сегодня ставить :)
 
Назад
Сверху