Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Глобальная переменная в "памяти программы"


Автор: Nowichok 21.8.2009, 06:31
А возможно ли сделать переменную ГЛОБАЛЬНОЙ для всех форм, НЕ ВКЛЮЧАЯ изначальную форму во все остальные.

Порой из формы нужна лишь одна переменная. Допустим, нужна переменная из Form1 А пропись в другой форме (form2) в разделе Uses form1 приводит (насколько помню) к тому, что весь код Form1 вставляется  в form2. Да и неудобно это. А я всегда был за компактный код.

Можно ли как-то вынести переменную в "общую память программы", чтобы всегда можно было получить доступ к ней ? Тогда было бы удобно обращаться к ней из любого места программы

Автор: Frees 21.8.2009, 06:41
Цитата(Nowichok @  21.8.2009,  09:31 Найти цитируемый пост)
, что весь код Form1 вставляется  в form2.

насколько я помню то это глупость..

Добавлено через 2 минуты и 57 секунд
Цитата(Nowichok @  21.8.2009,  09:31 Найти цитируемый пост)
Можно ли как-то вынести переменную в "общую память программы", чтобы всегда можно было получить доступ к ней

а что ты хочеш вынести?

вот тебе например глобальная переменная которую в любой форме увидиш
Код

Application.Tag

Автор: Мозгоносец 21.8.2009, 07:49
Цитата(Nowichok @ 21.8.2009,  06:31)
А возможно ли сделать переменную ГЛОБАЛЬНОЙ для всех форм, НЕ ВКЛЮЧАЯ изначальную форму во все остальные.

Порой из формы нужна лишь одна переменная. Допустим, нужна переменная из Form1 А пропись в другой форме (form2) в разделе Uses form1 приводит (насколько помню) к тому, что весь код Form1 вставляется  в form2. Да и неудобно это. А я всегда был за компактный код.

Можно ли как-то вынести переменную в "общую память программы", чтобы всегда можно было получить доступ к ней ? Тогда было бы удобно обращаться к ней из любого места программы

 Вообще-то это делается и называется не так. Если нужны переменные, константы, типы, процедуры, которые должны быть доступны во всех модулях ("юнитах") и, соответственно, формах, то заводится отдельный юнит, в который и помещаются нужные переменные и пр. Затем этот юнит добавляется в секцию uses везде, где нужен доступ. Другого приемлимого способа нет. Но с глобальными переменными нужно быть осторожным. По возможности нужно стараться спроектировать так программу, чтобы необходимости в глобальных переменных не было. Другое дело, что такое далеко не всегда возможно.

Автор: Nowichok 21.8.2009, 13:03
Про Application.Tag Спасибо ! Однако порой надо не одну переменную так держать в общей памяти

2Мозгоносец
 Спасибо. ДУмаю, это и будет ответом на поставленный вопрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)