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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2012, 16:17   #1
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию Использование Uses

Доброго времени суток.
На протяжении нескольких лет я пишу один проект, в коде которого накопилось уже достаточно "мусора", по этому сейчас я благополучно перечитываю и переделываю некоторые моменты программы. Теперь я пришел к ситуации, когда отдельные классы программы стоило бы вынести в отдельные файлы, тем самым не забивая код программы лишним. На примере одного из классов я создал MySource.pas, где описал все как нужно. Впрочем, все работает отлично, вот только возник вопрос по месторасположению файла MySource.pas (MySource.dcu, если быть точнее, ведь компилятор требует именно его).

Внутри проекта я включаю файл в Uses:
Код:
Uses ... MySource;
Но данный вариант работает только в двух случаях:
1. Файл MySource.dcu лежит в одной из папок, описанных в Library Path.
2. Файл MySource.dcu лежит в корневой папке программы (если Delphi не установлена на компьютере).
Можно ли каким-то образом прописать конкретный путь к этому файлу? Например, было бы хорошо разместить все эти файлы в отдельной папке Data, которая находится в папке с проектом.

Как правильно прописать путь к модулю?
P.S. Приношу мои извинения, если изначально вариант хранения отдельных кусков кода был неверен. Я было думал об использовании DLL-библиотек, но в таком случае в коде программы придется заново описывать функции которые нужно импортировать (что никак не вяжется с задачей сделать код чище). По этому больше склоняюсь к выбранному варианту.
kettanaito вне форума Ответить с цитированием
Старый 02.06.2012, 16:25   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Project - Options - Search Path

там прописывается сколько угодно путей к каталогам, в которых компилятор будет искать модули. Если компилировать в командной строке, то это опция /U


> если изначально вариант хранения отдельных кусков кода был неверен

да нет, всё верно. Посмотрите на VCL - всё раложено по полочкам, так и должно быть.


> если Delphi не установлена на компьютере

если Дельфи нет на компе, то абсолютно не важно, где лежит MySource.dcu. Кроме Дельфи он никому не нужен )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 02.06.2012 в 16:28.
veniside вне форума Ответить с цитированием
Старый 02.06.2012, 16:29   #3
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

veniside, а как обратиться к директории проекта? {Project}? Или в качестве пути можно просто использовать "Data\"?

Цитата:
если Дельфи нет на компе, то абсолютно не важно, где лежит MySource.dcu. Кроме Дельфи он никому не нужен
А для работоспособности программы файлы стоит хранить в каком формате? DCU ведь.

Последний раз редактировалось kettanaito; 02.06.2012 в 16:36.
kettanaito вне форума Ответить с цитированием
Старый 02.06.2012, 16:48   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> в качестве пути можно просто использовать "Data\"?

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


> А для работоспособности программы файлы стоит хранить в каком формате? DCU ведь.

для работы программы нужен .exe бинарник. DCU нужны исключительно на этапе компиляции.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 02.06.2012, 16:55   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

о_О а что "Project - Add to Project..." уже не тот?
Просто добавьте нужные вам сорцы и все. Далее, как обычно, подключайте их в Uses.
Человек_Борща вне форума Ответить с цитированием
Старый 02.06.2012, 16:59   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Add to Project

можно, конечно, но если в библиотеке много модулей, замахаешься так добавлять.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 02.06.2012, 16:59   #7
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

veniside, Человек_Борща, разве приложение не будет требовать этих исходников? Для примера, я использую пару нестандартных компонентов, то без некоторых их исходников программа просто не запустится. Думаю с моими модулями будет точно так же.
kettanaito вне форума Ответить с цитированием
Старый 02.06.2012, 17:11   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> без некоторых их исходников программа просто не запустится

ерунда. Максимум, что может потребоваться, это DLL/BPL (это если с рантайм пакаджами) ну и может какие-то ресурсы, типа картинок, звуков и прочее, если они не вкомпилированы в бинарник. Исходники и dcu вашей скомпилированной программе даром не нужны.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 02.06.2012, 17:36   #9
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Ясно. Благодарю за ответы
kettanaito вне форума Ответить с цитированием
Старый 02.06.2012, 19:14   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Уважаемый. Исходники нужны только для сборки exe програмиистом.
А exe может существовать и без них.
Человек_Борща вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование If Macklay PHP 4 14.05.2012 20:03
Использование БД glazik БД в Delphi 13 22.02.2012 09:14
Использование (...) в с++ Byurrer Общие вопросы C/C++ 12 06.04.2011 23:04
использование семафоров Sparky Win Api 0 30.05.2010 15:57
Использование while и while do prikolist Общие вопросы C/C++ 20 06.04.2009 18:40