![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
saneea |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Собственно разрабатываеться модель файловой системы (курсовой проект). Смысл вот в чём: существует к примеру массив целых чисел (хенделов на файлы). На каждый хендл может быть создан экземпляр класса, а может быть не создан (это меняется динамически в ходе работы программы). Я хочу сделать так, чтобы при создании объекта с повторном хенделом, получалась ссылка на уже существующий объект...
Вобщем что-то вроде этого:
и нужно что-бы после этого ссылки a и b указывали на один и тот же экземпляр... Такое возможно? И ещё одна просьба, подскажите в каких книгах можно прочитать о работе с классами в ObjectPascal. |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
Синглтон чтоли хочешь реализовать?
поищи по слову Singleton. варианты реализации: 1. Простой. Доступ к единственному объекту через функцию, в которой он создается один раз и храниться в глобальной переменной. 2. Чуть более сложный. Перекрыть метод NewInstance в котором всегда возвращать ссылку на единожды созданный экземпляр класса. Добавлено через 1 минуту и 17 секунд ну да, применительно к сабжу задача немного усложняется. придется видимо вести список соответствия хэндл-объект... -------------------- There are always someone smarter than you... |
|||
|
||||
saneea |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Решил задачу таким образом: описываю класс TFileRecord и в его теле кроме прочих элементов добавляю переменную NextFile: TFileRecord(получается связаный список). И после этого пишу такую функцию, которая ищет в этом списке экземпляр с таким же хендлом. Если находим такой экземпляр, то возвращаем ссылку на него, а если не находим, то добавляем в список ещё один элемент. Всё отлично работает:
функция Assign:
P.S.: Подскажите пожалста книгу где можно почитать о работе с классами. |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
хорошая книга по ООП - Приемы объектно-ориентированного проектирования. там правда на C++ но все достаточно понятно
-------------------- There are always someone smarter than you... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |