Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2007, 12:47   #1
nemo.x
Ищущий
 
Аватар для nemo.x
 
Регистрация: 25.11.2006
Сообщений: 8
По умолчанию Вопрос насчёт процедуры.

Как сделать так, чтобы в процедуре создавались некоторые переменные и были доступны всей программе, если процедура находится в отдельном unit'е.
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you feel Coding and make a Code - you a God.
nemo.x вне форума Ответить с цитированием
Старый 18.02.2007, 15:05   #2
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Можно использовать глобальные переменные, описаные в отделбном юните (юнит подключаем через USES), можно через запись в файл-чтение из файла(так медленнее)
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 18.02.2007, 15:35   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Можно использовать глобальные переменные, описаные в отделбном юните (юнит подключаем через USES)
После служебного слова
implementation (в юните - после перечисления процедур и переменных)
пишете слово
uses
и за ним перечисляете имена юнит, которые хотите "подключить".

Последний раз редактировалось mihali4; 19.02.2007 в 02:52.
mihali4 вне форума Ответить с цитированием
Старый 18.02.2007, 20:41   #4
Yogurt
Пользователь
 
Аватар для Yogurt
 
Регистрация: 22.01.2007
Сообщений: 25
По умолчанию

Использование глобальных переменных может быть опасно, особенно в больших программах. Я бы сделал по-другому. Если в списке формальных параметров перед данной переменной поставить var то фактическая переменная тоже будет изменяться:

procedure proc_name (a:real; var b:integer);

Тогда если внутри процедуры значение b будет равным, например, 3 то значение с - тоже 3:

var
a:real;
c:integer;
begin
proc_name (a,c);
end.
Yogurt вне форума Ответить с цитированием
Старый 19.02.2007, 01:20   #5
sis
Пользователь
 
Регистрация: 10.02.2007
Сообщений: 16
По умолчанию

Никак! Если нет глобальной переменной, которая будет отвечать за то что Вы хотите создать! Лучше всего использовать входно/выходной параметр, пременяя var как описанно в вышеизложенном примере!

А еще лучше, если задача нормального характера, обернуть это дело классом, там завести поле и создать свойства на чтение и на запись!

Еще как вариант глобальная переменная в модуле! Ничего страшного! Только обращаться к ней придется для лучшей уверенности так: 'UnitName.X'
sis вне форума Ответить с цитированием
Старый 19.02.2007, 08:55   #6
nemo.x
Ищущий
 
Аватар для nemo.x
 
Регистрация: 25.11.2006
Сообщений: 8
По умолчанию

А как быть с массивами? Как их запихнуть в параметры?
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you feel Coding and make a Code - you a God.
nemo.x вне форума Ответить с цитированием
Старый 19.02.2007, 11:22   #7
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Делай записи
Romanus вне форума Ответить с цитированием
Старый 19.02.2007, 14:22   #8
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
А как быть с массивами? Как их запихнуть в параметры?
Создаём свой тип type Tmas=record[1..n]of integer; (например)
потом так как написано выше
procedure abcdef (var a:Tmas);
zetrix вне форума Ответить с цитированием
Старый 21.02.2007, 15:05   #9
nemo.x
Ищущий
 
Аватар для nemo.x
 
Регистрация: 25.11.2006
Сообщений: 8
По умолчанию

Ещё вопрос: Можно ли создать массив из объектов? если да, то покажите на примере
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you feel Coding and make a Code - you a God.
nemo.x вне форума Ответить с цитированием
Старый 21.02.2007, 15:53   #10
А. Долматов
Форумчанин
 
Аватар для А. Долматов
 
Регистрация: 15.02.2007
Сообщений: 183
По умолчанию

из объектов, скорее нет, чем да. Потому как объект не значение.
Знать все невозможно, в силу того, что жить бы стало неинтересно.
А. Долматов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос о "создании" процедуры Rusl92 Общие вопросы Delphi 5 20.08.2008 18:37
Вопрос по работе процедуры GotoXY и TextAttr Mister Been Помощь студентам 0 02.06.2008 18:57
Вопрос насчёт класса TStringList!!! KAMENYKA Компоненты Delphi 4 06.12.2007 14:49
Насчёт скина JoanM Win Api 5 16.04.2007 16:45
Вопрос насчёт домашних страниц браузера и Delphi evgenyan Работа с сетью в Delphi 5 01.03.2007 17:06