![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Pcrepair |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
Добрый день
Есть Unit1 - основной модуль, содержит форму unit2 - без формы, содержит процедуру, вызываемую из Unit1 Data: string; - глобальная переменная для хранения текста Если разместить Data в модуль Unit2 перед implementation то все нормально работает, Data доступна подпрограммам и из Unit1 и Unit2 Если разместить Data в модуль Unit1 перед implementation, то из Unit2 она не доступна уже размещал Data в секцию public в Unit1 и вводил Unit1 в секцию uses unit2, ничего не помогает
Кто подскажет в чем дело? нужно разместить переменную в основном модуле, но чтоб она была доступна в подключаемых модулях --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
Чучмек |
|
||||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 7 Всего: 41 |
Unit2 у тебя прописан в uses Unit1 или Project1?
Добавлено @ 11:05 Например: Новый проект. + File->New->Unit В unit2 объявляешь переменную s
В uses unit1 добавляешь Unit2 и объявляешь переменную s:string absolute unit2.s
Все Это сообщение отредактировал(а) Чучмек - 7.6.2012, 11:09 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||
|
|||||
Pcrepair |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
унит2 конечно прописан в унит1, ведь там процедура которую вызывают из унит1
но вообще уже ясно, не там указал унит1 в унит1, не подключил так сказать ту некотрые советуют все ГлобПерем в отдельном юните прописать, как такое решение? потому что будет еще унит3 и унит4 и все будут вызывать эту переменную чтоб обрабатыватьданные в ней --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
Не используйте глобальные переменные.
Это сообщение отредактировал(а) Qu1nt - 7.6.2012, 13:43 |
|||
|
||||
Pcrepair |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
кстати, так никто и не поведал: ну чем так ужастны глобальные переменные?
в книжках об этом, их ужастности, то же пишут, но совершенно бездоказательно --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
||||
|
||||
Pcrepair |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
у гани смокера одни надуманные примеры, да и доводы то же. все это прочитано и многое другое
вот если кто на реальных примерах указал, что при испоьзовании ГП: - программа зависает - перерасход памяти - прочие плохие пришествия тогда все эти утверждения что Гп - здло, не бы ли бы голословными --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 22 Всего: 50 |
Никого переубеждать не собираюсь. Скажу лишь, что отлично обхожусь без глобальных переменных программируя на C#. А еще мне нравится писать масштабируемые системы, независимые от контекста окружения. Реализовать подобные решение с использованием глобальных переменных сложнее, и этот топик тому подтверждение.
|
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
Qu1nt, можно увидеть пример такой системы? Какой не жалко
|
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
...надо бы сказать клиентам, чьи примеры я привожу, что их приложения "надуманы"... -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
а зачем такая жесть?! Unit1 и так "увидит" глоб.переменную из Unit2, разве нет? А вообще согласен. Глоб.переменные это зло и по возможности надо их избегать. -------------------- There are always someone smarter than you... |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
Секция public относится к обьекту а не юниту. Сделай просто обычный var или const сразу под uses. Ну и указывай этот модуль в uses модуля в котором будешь обращаться к переменной. Можешь использовать - никто ни против. |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 7 Всего: 41 |
Unit2 не увидит переменную из Unit1 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Прежде чем учить алгебру, надо изучить арифметику. Прежде чем учить высшую математику, надо изучить простую математику. Нечто подобное относится и к программированию.
Твоя программа, которую ты "рожаешь" уже довольно давно, никогда "не взлетит"! 1. Потому, что ты считаешь себя программистом, не имея на то никаких оснований. 2. Потому, что ты не считаешь программистами тех, кто тебе указывает на неправильные решения. 3. Потому что слишком часто хамишь. Примите и прочь. Это сообщение отредактировал(а) northener - 8.6.2012, 01:23 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
не понял, зачем ему видеть какую-то переменную из Unit1, если у него (Unit2) есть "своя" глобальная переменная, которую Unit1 и так "видит"? -------------------- There are always someone smarter than you... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |