C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Изменение TStrings, Нужно подправить метод
Schumi
Отправлено: 24.08.2005, 10:35


Машинист паровоза

Группа: Участник
Сообщений: 206



Сейчас пишу под Делфи. И столкнулся с такой проблемой — мне нужно чуть изменить метод SaveToStream. Я просто скопировал classes.pas и правлю. Все нормально, а как сделать это под bcb?
GIZMO
Отправлено: 24.08.2005, 10:58


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (Schumi @ 24/08/2005, 10:35)
Сейчас пишу под Делфи. И столкнулся с такой проблемой — мне нужно чуть изменить метод SaveToStream. Я просто скопировал classes.pas и правлю. Все нормально, а как сделать это под bcb?

TStrings is the base class for objects that represent a list of strings.
+
virtual void __fastcall SaveToStream(TStream* Stream);
т.е. унаследовать и переопределить.

gvg
Отправлено: 24.08.2005, 10:59


Машинист паровоза

Группа: Участник
Сообщений: 222



Сделать потомка от TStrings с перегруженной функцией, и использовать его.
Schumi
Отправлено: 24.08.2005, 18:36


Машинист паровоза

Группа: Участник
Сообщений: 206



Это понятно. Но проблема в другом — у меня есть большой проект: где куча всяких ричэдитов и мемо, и там везде где надо и не надо smile.gif стоят вызов метода SaveToStream их Lines.
Сейчас я просто сделал функция, которая получает параметр TStrings — и на базе его данных уже выполняют некоторые действия. Но хотелось как-то педагогичней.
Георгий
Отправлено: 24.08.2005, 20:09


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



с самого начала надо было использовать фабрики классов.

Отредактировано Георгий — 24/08/2005, 21:10
GIZMO
Отправлено: 25.08.2005, 09:12


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (Георгий @ 24/08/2005, 20:09)
с самого начала надо было использовать фабрики классов.

???
Schumi
Отправлено: 25.08.2005, 18:46


Машинист паровоза

Группа: Участник
Сообщений: 206



И правда. Что это такое?
Георгий
Отправлено: 25.08.2005, 22:57


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



правильное название — Фабрика объектов, но все называют фабрики классов (Class Factory). это стандартный шаблон проектирования. поэтому отсылаю к Андрею Александреску — Современное проектирование на С++.

советую купить 3 часть в магазине.

а pfd 1 части выложил на http://www.webfile.ru/480881
файл будет жить до 1 сентября.

PS. шаблон visitor тоже интересен и, возможно, для решения этой частной проблемы подойдёт лучше.

Отредактировано Георгий — 26/08/2005, 00:12
GIZMO
Отправлено: 26.08.2005, 10:05


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (Георгий @ 25/08/2005, 22:57)
правильное название — Фабрика объектов, но все называют фабрики классов (Class Factory). это стандартный шаблон проектирования. поэтому отсылаю к Андрею Александреску — Современное проектирование на С++.

советую купить 3 часть в магазине.

а pfd 1 части выложил на http://www.webfile.ru/480881
файл будет жить до 1 сентября.

PS. шаблон visitor тоже интересен и, возможно, для решения этой частной проблемы подойдёт лучше.

Какая здесь "частная проблема" или как связан п.8.1. из "Современное проектирование на С++" и данный топик.
Георгий
Отправлено: 26.08.2005, 21:54


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



не, ну как связаны? напрямую.

Schumi спросил "как граммотно сделать" — ему ответил, как грамотно ко всем классам по тихому добавить (переопределить) метод и не гемороиться.

Visitor, после того,как проспали ФК самое оно.

Отредактировано Георгий — 26/08/2005, 22:56

Вернуться в Вопросы программирования в C++Builder