Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Видимость переменных в разных модулях, Видимость переменных в разных модулях 
:(
    Опции темы
Pcrepair
Дата 7.6.2012, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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, ничего не помогает

Код

public
  var
    Data: string;
  end;


Кто подскажет в чем дело? нужно разместить переменную в основном модуле, но чтоб она была доступна в подключаемых модулях
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
Чучмек
Дата 7.6.2012, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Unit2 у тебя прописан в uses Unit1 или Project1?

Добавлено @ 11:05
Например:
Новый проект. + File->New->Unit
В unit2 объявляешь переменную s 
Код

unit Unit2;

interface

var s:string;

implementation
....
....


В uses unit1 добавляешь Unit2
и объявляешь переменную s:string absolute unit2.s
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, unit2;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  var s:string absolute unit2.s;

implementation
...
...


Все

Это сообщение отредактировал(а) Чучмек - 7.6.2012, 11:09


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Pcrepair
Дата 7.6.2012, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



унит2 конечно прописан в унит1, ведь там процедура которую вызывают из унит1
но вообще уже ясно, не там указал унит1 в унит1, не подключил так сказать

ту некотрые советуют все ГлобПерем в отдельном юните прописать, как такое решение? потому что будет еще унит3 и унит4 и все будут вызывать эту переменную чтоб обрабатыватьданные в ней
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
Qu1nt
Дата 7.6.2012, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Не используйте глобальные переменные.

Это сообщение отредактировал(а) Qu1nt - 7.6.2012, 13:43
PM MAIL   Вверх
Pcrepair
Дата 7.6.2012, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



кстати, так никто и не поведал: ну чем так ужастны глобальные переменные?
в книжках об этом, их ужастности, то же пишут, но совершенно бездоказательно
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
Qu1nt
Дата 7.6.2012, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



PM MAIL   Вверх
Pcrepair
Дата 7.6.2012, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



у гани смокера одни надуманные примеры, да и доводы то же. все это прочитано и многое другое
вот если кто на реальных примерах указал, что при испоьзовании ГП:
- программа зависает
- перерасход памяти
- прочие плохие пришествия

тогда все эти утверждения что Гп - здло, не бы ли бы голословными
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
Qu1nt
Дата 7.6.2012, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Никого переубеждать не собираюсь. Скажу лишь, что отлично обхожусь без глобальных переменных программируя на C#. А еще мне нравится писать масштабируемые системы, независимые от контекста окружения. Реализовать подобные решение с использованием глобальных переменных сложнее, и этот топик тому подтверждение.
PM MAIL   Вверх
Keeper89
Дата 7.6.2012, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Qu1nt, можно увидеть пример такой системы? Какой не жалко


--------------------
PM MAIL WWW   Вверх
CodeMonkey
Дата 7.6.2012, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата
у гани смокера одни надуманные примеры


...надо бы сказать клиентам, чьи примеры я привожу, что их приложения "надуманы"...


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
MetalFan
Дата 7.6.2012, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(Чучмек @  7.6.2012,  10:56 Найти цитируемый пост)
и объявляешь переменную s:string absolute unit2.s

а зачем такая жесть?! Unit1 и так "увидит" глоб.переменную из Unit2, разве нет?

А вообще согласен. Глоб.переменные это зло и по возможности надо их избегать.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
superVad
Дата 7.6.2012, 23:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Цитата(Pcrepair @  7.6.2012,  09:46 Найти цитируемый пост)
уже размещал Data в секцию public в Unit1 и вводил Unit1 в секцию uses unit2, ничего не помогает

Секция public относится к обьекту а не юниту.
Сделай просто обычный var или const сразу под uses. Ну и указывай этот модуль в uses модуля в котором будешь обращаться к переменной.

Цитата(Pcrepair @  7.6.2012,  14:12 Найти цитируемый пост)
у гани смокера одни надуманные примеры, да и доводы то же. все это прочитано и многое другоевот если кто на реальных примерах указал, что при испоьзовании ГП:- программа зависает- перерасход памяти- прочие плохие пришествиятогда все эти утверждения что Гп - здло, не бы ли бы голословными

Можешь использовать - никто ни против.
PM MAIL   Вверх
Чучмек
Дата 7.6.2012, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Цитата(MetalFan @  7.6.2012,  23:00 Найти цитируемый пост)
а зачем такая жесть?! Unit1 и так "увидит" глоб.переменную из Unit2, разве нет?

Unit2 не увидит переменную из Unit1


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
northener
Дата 8.6.2012, 01:22 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Pcrepair @  7.6.2012,  15:12 Найти цитируемый пост)
у гани смокера одни надуманные примеры, да и доводы то же. все это прочитано и многое другое
вот если кто на реальных примерах указал, что при испоьзовании ГП:
- программа зависает
- перерасход памяти
- прочие плохие пришествия

тогда все эти утверждения что Гп - здло, не бы ли бы голословными 


Прежде чем учить алгебру, надо изучить арифметику. Прежде чем учить высшую математику, надо изучить простую математику.
Нечто подобное относится и к программированию.
Цитата

- программа зависает
- перерасход памяти
- прочие плохие пришествия

Твоя программа, которую ты "рожаешь" уже довольно давно, никогда "не взлетит"!
1. Потому, что ты считаешь себя программистом, не имея на то никаких оснований.
2. Потому, что ты не считаешь программистами тех, кто тебе указывает на неправильные решения.
3. Потому что слишком часто хамишь.
Примите и прочь.

Это сообщение отредактировал(а) northener - 8.6.2012, 01:23


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
MetalFan
Дата 8.6.2012, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(Чучмек @  7.6.2012,  23:34 Найти цитируемый пост)
Unit2 не увидит переменную из Unit1 

не понял, зачем ему видеть какую-то переменную из Unit1, если у него (Unit2) есть "своя" глобальная переменная, которую Unit1 и так "видит"?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0897 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.