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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Методы, уникальные для экземпляров класса 
V
    Опции темы
DelphianOracle
Дата 2.3.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго всем времени суток!
У меня возникла проблема. Нужен что-нить типа класса, в котором помимо полей и свойств будут методы, уникальные для каждого экземпляра. Т. е. набор методов одинаковый, а содержание меняется... Хранить такие экземпляры надо в файлах.
В принципе, можно распараллелить - поля отдельно, и сэтим проблем не возникнет, а вот как быть с методами...
Надеюсь на вашу помошь
PM MAIL   Вверх
bems
Дата 2.3.2008, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



код методов в разных файлах и связывание в рантайм? 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
lukas
Дата 2.3.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(bems @  2.3.2008,  21:26 Найти цитируемый пост)
код методов в разных файлах и связывание в рантайм?  


дастиш фантастишь....  smile 



--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Alexeis
Дата 3.3.2008, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(bems @  2.3.2008,  20:26 Найти цитируемый пост)
код методов в разных файлах и связывание в рантайм?  

  Совсем несложно на самом деле. Если методы не виртуальные. Создается класс с кучей переменных типа
Function .... of Object и правильными параметрами. В конструкторе грузиться Dllка и ее функции присваиваются переменным типа Function .... of Object. Можно даже механизм какой-нить придумать для получения списка методов. Например, одна из функций Dll вернет номер первой функции такого класса и общее число. Ну и написать общего предка таких классов, который будет автоматом линковать все нужные методы. 
  Намного сложнее если будут виртуальные методы.

  Но если честно задача попахивает нерациональностью. Намного проще иметь класс реализованный в Dll  и Интерфейс этого класса в программе. Одна из функций Dll просто должна возвращать интерфейс созданного экземпляра класса. Ну например как это сделано в делфийской оболочке GDI+. Dll на ваще на C++ писанная, но поверх нее создается мини класс оболочка, которая предоставляет доступ ко всем возможностям. Если Dll написанна на делфях, то такого даже не нужно.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Felan
Дата 3.3.2008, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



DelphianOracle
Цитата(DelphianOracle @  2.3.2008,  23:19 Найти цитируемый пост)
Т. е. набор методов одинаковый, а содержание меняется...

В простонародьи это называется - полиморфизм.
Прочитай про наследование и виртуальные/динамические методы, и будет тебе счастье smile

ЗЫЖ И еще хорошо бы про интерфейсы прочитать.



--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 3.3.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Felan @  3.3.2008,  08:05 Найти цитируемый пост)
ЗЫЖ И еще хорошо бы про интерфейсы прочитать.

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


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DelphianOracle
Дата 3.3.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Плизз, киньте пару ссылок...
А то все эти виртуальные, динамические методы, интерфейсы, DLL для меня почти что китайская грамота...
PM MAIL   Вверх
Alexeis
Дата 3.3.2008, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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





--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DelphianOracle
Дата 3.3.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Alexeis, Спасибо, книга отличная, разобрался
Если вопросы еще будут, я задам, а пока тему можно закрывать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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