Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Присоединение файлов с собственными функциями

835
30 октября 2001 года
dimawasp
5 / / 20.04.2000
Привет

Ситуация следущая:
Имею кучу функций в одном файле, неудобно
Создаю новый Unit
туда в раздел implementation
кидаю свои функции
Затем в uses главного файла, в котором эти функции используются, прописываю этот Unit
запускаю и получаю ошибки, мои глобальные переменные из первого файла не видны в функциях которые я кинул в Unit
тогда я добавляю в interface
"uses главный файл;" и получаю другую ошибку , что-то типа цикличных ссылок
Так как же правильно выносить заграмождающие функции в отдельный файл???????

Заранее спасибо,
Дмитрий
Аноним
раздел uses можно размещать как в разделе interface, так и в разделе implementation...
Во втором случае ругаться никто не будет, но вообще-то говоря это плохой стиль, место глобальных переменных в отдельном модуле.
449
01 ноября 2001 года
Fantasist
124 / / 20.06.2000
Правильно. А еще лучше передавать все через параметры. Так и переносимость будет.
835
05 ноября 2001 года
dimawasp
5 / / 20.04.2000
Я вынес в отдельный модуль глобальные переменные, этот модуль прописал типа

interface

uses
vspomogatel;

Сам модуль выглядит так

unit vspomogatel;
interface
implementation
var
num_okon: integer;
end.

Однако по прежнему
ошибка тпа не описаны переменные

Пробовал добавлять uses в раздел
implementation
Ошибка - та же
449
05 ноября 2001 года
Fantasist
124 / / 20.06.2000
Гхм. Все, что ты хочешь чтобы было видно в других модулях, нужно помещать в раздел interface.

unit UnitGl;

interface
var
v1,v2:integer;

implementation

end.

--------------------------

unit Funct;

interface
uses UnitGl;

function Fn:integer;

implementation

function Fn:integer;
begin
Result:=v1+v2;
end;

end.

---------------------------

Unit Main;

interface
uses
UnitGl,Funct;

function Main:integer;

implementation

function Main:integer;
begin
v1:=4;
v2:=3;
Result:=Fn;
end;

end.

Только не забудь их в проект добавить. Или откомпилировать в другом месте.
835
05 ноября 2001 года
dimawasp
5 / / 20.04.2000
Спасибо, разобрался

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог