![]() |
|
![]() ![]() ![]() |
|
SerK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 31.3.2007 Репутация: нет Всего: нет |
Пишу свой небольшой редактор вебстраниц.
Столкнулся с проблемой возврата действий. Использую РичЕдит, который имеет только один возврат. Честно говоря, не такое это простое дело, неделю бьюсь над этим вопросом, уже мозги кипят. Может кто уже реализовал механизм возврата? -------------------- Пусть будет миру хорошо! |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
SerK, очень давно реализовывал это через класс TClipboard. Если найду исходник - скину, хотя собственно ничего мудреного нет. Создаем массив TClipboard и работаем
![]() |
|||
|
||||
me21 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 13.1.2006 Репутация: нет Всего: нет |
Можно сделать иерархию своих классов TAction с методами Do/Undo, и держать их массив/список. Когда пользователь что-то делает в программе, создавать очередной объект нужного класса и добавлять в список.
|
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
Самый простой (но не очень эффективный) путь - использовать список, хранящий версии документа.
Неэффективность заключается в хранении документа целиком. Однако в реальных случаях работает достаточно хорошо. Следующий шаг - измельчение хранимого, по типу предлагаемого me21. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
а чем вам TClipboard не нравится?
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
RichEdit версии 2 может поддерживать сообщение EM_SETUNDOLIMIT. Что проще - прикрутить WinAPI-шный RichEdit v2 или изобретать велосипед? В Интернете наверняка есть компоненты, использующие RichEdit v2. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Кстати благодаря 586 заглянул в хелп к CG 2009, где сказано что
собственно дело выходит фактически решенное ![]() |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
В bcb6 код...
... не работает. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
хм. в 2009 кстати тоже не работает. хоть ф-я и возвращает 50. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
SerK, глянь такой результат подойдет
Присоединённый файл ( Кол-во скачиваний: 20 ) ![]() |
|||
|
||||
SerK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 31.3.2007 Репутация: нет Всего: нет |
mrbrooks
Спасибо за ответ, скачал Ваш архив, приду домой попробую, потом сообщу результат. -------------------- Пусть будет миру хорошо! |
|||
|
||||
taiven |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 3 Всего: 9 |
полазил по дельфийским форумам, вообщем вот так можно сделать:
но в это случае перестают работать некоторые методы RichEdita ![]() RichEdit->Lines->Append("string"); например не работает... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |