![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
общие переменные [D7, XP]
RX © (2005-12-17 19:00:00)Есть 2 юнита. В главном описан массив.
В втором надо к этому массиву обращаться.
Как это сделать?
RX (2005-12-17 19:33:00) [1]модули не могут ссыласться друг на друга в одной секции
1-й ссылается на 2-й в сейкции interface, 2-й ссылается на 1-й в секции implementation
Спасибо. ОЧень дельный совет.
Косяк был именно в этом.
Опыта ни хира нет..... вот и...
Oni (2005-12-17 19:31:00) [2]Во втором модуле:
uses Unit1, ....
[Fatal Error] Unit1.pas(7): Circular unit reference to 'Unit1'
//-------------------------------------------
В первом модуле есть строка uses Unit2?
Desdechado (2005-12-17 19:29:00) [3]чтобы переменная была доступна из другого модуля, она должна быть описана в секции interface
использование глобальных переменных требует большой осторожности, ибо следить за ее состоянием (инициализирована и чем, какая процедура и когда ее переустановила) очень тяжело, зато легко в такой ситуации нахватать ошибок и долго искать "виновницу" переустановки значения переменной
модули не могут ссыласться друг на друга в одной секции
1-й ссылается на 2-й в сейкции interface, 2-й ссылается на 1-й в секции implementation
RX (2005-12-17 19:13:00) [4]Во втором модуле:
uses Unit1, ....
[Fatal Error] Unit1.pas(7): Circular unit reference to 'Unit1'
Лучше:
массив сделать свойством формы (если она есть) и обращаться к нему через специальные методы
Можно:
MainUnit.MyArray
Но глобальные переменные - только в самом крайнем случае использовать, определяя их в секции interface
поподробней пожалуйста
Джо (2005-12-17 19:04:00) [5]Во втором модуле:
uses MainUnit, ....
Desdechado (2005-12-17 19:04:00) [6]Лучше:
массив сделать свойством формы (если она есть) и обращаться к нему через специальные методы
Можно:
MainUnit.MyArray
Но глобальные переменные - только в самом крайнем случае использовать, определяя их в секции interface
RX (2005-12-17 19:03:00) [7]второй юнит просто не видит массива главного юнита