Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

общие переменные [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]

второй юнит просто не видит массива главного юнита


Наверх

Титульная страница Поиск, карта сайта Написать письмо