Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Вниз

Значение переменной   Найти похожие ветки 

 
Дилетант ©   (2005-10-06 14:33) [0]

Еще один глупый вопрос: Как передать значение переменной из одного модуля в другой?


 
stone ©   (2005-10-06 14:36) [1]

1. Поместить ее в Public
2. Передать через процедуру/функцию


 
Дилетант ©   (2005-10-06 14:43) [2]

почему-то через Public не работало... Ее в обоих модулях надо в Public загонять?


 
stone ©   (2005-10-06 14:48) [3]

нет только в одном, а во втором указывать этот unit в uses


 
evvcom ©   (2005-10-06 15:23) [4]

что подразумевается под "модулем"? unit или exe и dll?


 
msguns ©   (2005-10-06 15:28) [5]

У Тексейры написано четко:

Все объекты "общего" пользования должны быть определены в юните, постоянно существующем во  время выполнения приложения (например, Главной форме или датамодуле). В этом случае любой из динамически создаваемых объектов может свободно писать и читать в эти объекты.
В том числе и при взаимодействии динамически созданных объектов между собою.


 
evvcom ©   (2005-10-06 16:06) [6]


> msguns ©   (06.10.05 15:28) [5]

речь все-таки идет о переменной, а не объекте.


 
Ищущий ©   (2005-10-06 16:14) [7]

2 evvcom : Переменная и есть объект
2 msguns : Не умничай. Опиши проще :
1. создаем проект.
2. в разделе public объявляем переменную
3. File->New->Unit (это разделы меню delphi)
4. сохраняем проект (не закрывая)
5. в редакторе кода нажимаем таб с имененем последнего созданного юнита
6. нажимаем alt+F11 и выбираем имя первого юнита (там где переменная)
7. ищем варианты как это можно сделать еще...


 
msguns ©   (2005-10-06 16:40) [8]

Вся трабла в том, в какой части юнита ты указываешь ссылку на другой инит, к объекту которого ты хочешь обратиться.
Если у тебя в Unit1 определен класс Class1, у которого есть опубликованная ссылка Parm1 и из Unit2 ты хочешь обратиться Class1.Parm1,
то имя Unit1  в перечне Uses надо поместить в раздел interface, а не Implementation, куда делфа "закидывает" выбранный тобою инит при Alt+F11

Именно во избежание этого "недостатка" я и советовал все объекты (классы) общего назначения располагать не в функциональных модулях, а в модуле Главной формы или датамодуле, которые перечислять в Uses сразу после слова inerface кода


 
evvcom ©   (2005-10-06 16:43) [9]


> Ищущий ©   (06.10.05 16:14) [7]
> 2 evvcom : Переменная и есть объект

Оп-па! Вот это новость. Смотрим:
var
 i: Integer;

i - это переменная, вот только не вижу, где здесь объект?


 
Anatoly Podgoretsky ©   (2005-10-06 16:45) [10]

msguns ©   (06.10.05 15:28) [5]
Ерунда написана, наверно и здесь переводчики намудрили. Издательство допустила большую ошибку поручив перевод с американского англичанину.


 
msguns ©   (2005-10-06 16:49) [11]

>Anatoly Podgoretsky ©   (06.10.05 16:45) [10]

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


 
Anatoly Podgoretsky ©   (2005-10-06 16:51) [12]

Ерунда в этой фразе

Все объекты "общего" пользования должны быть определены в юните, постоянно существующем во  время выполнения

Ни о каком времени выполнения говорить не приходится, юнит (что то сомневаюсь, что использован такой пацанский сленг) это не время существования, а единица структирования программы.


 
msguns ©   (2005-10-06 17:00) [13]

>Anatoly Podgoretsky ©   (06.10.05 16:51) [12]

Понятно ;))

Имелись в виду, конечно же не "юниты", ибо эта штука суть понятие компиллятора, но никак не ОС, которая "обслуживает" приложение во время его выполнения. А объекты, существующие в памяти в момент попытки обращения из других участков кода к их полям (участкам кода).
На языке же паскаля это можно "изобразить" в терминологии "инитов".
Хотя, возможно, что это и звучит "по-пацански".



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
14-1128934702
Igorek
2005-10-10 12:58
2005.10.30
Как писать хорошие книги по программированию


1-1128376693
Германн
2005-10-04 01:58
2005.10.30
Не могу "запустить" программу под дебаггером из IDE.


1-1128684587
XfroSt
2005-10-07 15:29
2005.10.30
Плоский TDateTimePicker


2-1128423393
nk
2005-10-04 14:56
2005.10.30
Запись CD-R(W)


1-1128681705
LordOfRock
2005-10-07 14:41
2005.10.30
Программа в ХР-шном стиле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский