![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| powerfox |
|
||||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Привет! Я пока ещё серьёзного на паскале не писал, но вот начинаю.
Я пишу модуль, замену стандартному. Много функций мне подходят из стандартного, но мне нужно чтобы в начале их выполнения и в конце вызывалось по процедуре. Дописать в стандартные функции возможности нет (можно их копировать к себе, но нежелательно). Вот пример того, что я хочу:
my_graph.pas:
В С++ я бы просто включил бы стандартный модуль (тонее заголовок) в пространство имён и вызывал бы standart_module::line. Это сообщение отредактировал(а) powerfox - 10.3.2007, 15:17 |
||||
|
|||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
Так в чем проблема? В своем модуле подключай стандартный и вызывай его функции. Но свои придется переименовать. ведь не понятно будет для компилятора рекурсивное это обращение или вызов дальней функции.
ЗЫ А ничего на подобии пространств имен я в паскале не припомню(( Это сообщение отредактировал(а) Sartorius - 10.3.2007, 16:44 |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
В этом и проблема. Что переименовывать нельзя. А класс в паскале позволяет делать так:
А внутри класса вставить юнит? |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: нет Всего: 18 |
полная квалификация идентификатора включает в себя имя модуля, т.е.
ModuleName.FuncName (VarName) так что внутри своей процедуры напишешь Graph.line |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
А хотя бы сделать так:
Функция A вызывает функцию B. B в видимости A, но B видин graph, который не видит A? Такое есть в языке? Добавлено @ 18:36 MBo, а при вызове моей line проблем не будет разве? Ведь graph будет подключён. |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: нет Всего: 18 |
> B видин graph, который не видит A
uses graph в implementation >при вызове моей line проблем не будет разве? вызовешь my_graph.line - и никаких проблем. Если в uses есть и graph и my_graph, и ты напишешь просто line без квалификатора модуля, то вызовется процедура из последнего по списку uses А вообще - ты создаешь проблемы какие-то на пустом месте. |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Спасибо. Я не подумал, что видно только то, что определено интерфейсом. Не писал на пасаль почти ничего серьёзного. Нужно именно line. Нужна полная совместимость с кодом под graph. А копирование кода line в мою line с добавлением нужных вызовов нежелательно, так как оба модуля с одного проекта и это нежелательно. |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
В общем, кроме включения существующего кода, другого способа я не вижу. При вызове стандартной line она вызовет стандартный PutPixel, что недопустимо.
Добавлено @ 00:30 P.S. Начну писать, там и видно будет... |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
Возьми С-ный graphics.lib или как он там называется. Подключи его к проекту и не парься с модулями
ЗЫ там же все теже самые функции, его же тоже борланд писал. |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Sartorius, сам проект и есть написать sdlgraph
|
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |