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

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

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

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

Сообщение AlexPavel » 28.12.2009 20:35:50

Привет всем!
У меня вопрос такой:
При подключении модулей в 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". Каким образом можно решить данную проблему?
AlexPavel
новенький
 
Сообщения: 12
Зарегистрирован: 28.12.2009 20:31:43

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

Сообщение Alexx2000 » 28.12.2009 20:50:57

Ничего удивительного, приведенный вами код некорректен. В данном случае сначала вызывается код из Unit1, а только потом из Project1.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

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

Сообщение Sergei I. Gorelkin » 28.12.2009 20:53:44

Все, что написано между `begin' и последним `end.' в модуле - это секция инициализации, она всегда выполняется до начала выполнения собственно программы.
Решить проблему можно, создав в модуле процедуру и вызывая ее из нужного места программы.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

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

Сообщение AlexPavel » 29.12.2009 03:16:58

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


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 50

Рейтинг@Mail.ru
cron