Как вызвать процедуру одного модуля из другого?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
KurtCobain
Сообщения: 5
Зарегистрирован: 13 июл 2006, 23:33

У меня в модуле "Unit1" находится процедура "qwerty". Я начинаю вызывать ее из другого модуля ("Unit2"), но ничего не получается, хотя Unit1 использует Unit2, а Unit2 использует Unit1. DELPHI пишет: "Unit1 does not contain a member named "qwerty"". Помогите, плиз!
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Надо вынести определение функции в секцию интерфейс (выше implementation)

Код: Выделить всё

procedure something(param: Integer);

implementation

procedure something(param: Integer);
begin
...
end;
С уважением, Lost Angel...
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

А еще можно обратиться к модулю... Или uses Unit1
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Duncon, это естественно. просто по uses не будут видны функции, описанные ниже Imlementation
С уважением, Lost Angel...
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Не объявленные естественно...
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Если модули друг на друга ссылаются, возможна еще проблема циклических ссылок. Т.е. когда в каждом из них в интерфейсной секции задана ссылка на другой. Решение простое: нужно разорвать цикл, переместив ссылку в секцию implementation (хотя бы в одном из модулей).
KurtCobain
Сообщения: 5
Зарегистрирован: 13 июл 2006, 23:33

Спасибо всем! KurtCobain
Ответить