Необходима помощь

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
AlexPavel
новенький
Сообщения: 12
Зарегистрирован: 28.12.2009 19:31:43

Необходима помощь

Сообщение AlexPavel »

Привет всем!
У меня вопрос такой:
При подключении модулей в Lazarus, переменные из программы не поступают в модуль. Такая же проблема при перекрестном подключении модулей. Ниже представлен простой пример, иллюстрирующий данную проблему

программа:

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

program Project1;
uses Unit1;
begin
X:=1;
Writeln('y=',y);
Readln;
end.


модуль:

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

unit Unit1;
interface
var y, X: real;
implementation
begin
y:=X;
end.


В примере необходимо переменной "y" присвоить значение переменной "X=1", при работе программы получаем "y=0", а должно быть "y=1". Каким образом можно решить данную проблему?
Аватара пользователя
Alexx2000
постоялец
Сообщения: 490
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи
Контактная информация:

Сообщение Alexx2000 »

Ничего удивительного, приведенный вами код некорректен. В данном случае сначала вызывается код из Unit1, а только потом из Project1.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Все, что написано между `begin' и последним `end.' в модуле - это секция инициализации, она всегда выполняется до начала выполнения собственно программы.
Решить проблему можно, создав в модуле процедуру и вызывая ее из нужного места программы.
AlexPavel
новенький
Сообщения: 12
Зарегистрирован: 28.12.2009 19:31:43

Сообщение AlexPavel »

Спасибо за пояснение.
Ответить