![]() |
|
Модераторы: Akina |
![]()
|
|
| Spectre |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 18.1.2006 Где: Беларусь, г. Минс к Репутация: нет Всего: нет |
Undo, Redo. В одной книге видел такое ActionUndo и ActionRedo. Но они там своеобразно как исполнены и когда я попробовал воплотить их на rtfText, то ничего не вышло.
|
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Програмиш сам.
-------------------- Я желаю всем Счастья! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
TextBoxBase.Undo Method поддержан в .NET Framework Class Library и не поддержан в VB6.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| BUGOR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 3 Всего: 16 |
Не вижу препятсвий для реализации этого метода вручную. Создаём массив(верхняя граница которого равна кол-ву шагов Undo), при каждом изменении сдвигаешь все элементы-1 вниз, тем самым самое последнее изменение удаляется, а на самый верх записываешь текущее состояние объекта.
|
|||
|
||||
| Spectre |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 18.1.2006 Где: Беларусь, г. Минс к Репутация: нет Всего: нет |
Попробую... Интересная трактовка. |
|||
|
||||
| IcyJet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Оно то правильно, но если в rtfText будет оГрОмНыЙ текст, к примеру 10mb умножаем его на количество шагов, к примеру 10 тогда выходит 10*10=100mb, помоему многовато выходит для одного поля |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Правильно сохранять не весь текст, а только изменения.
А потом ими оперировать -------------------- Я желаю всем Счастья! |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
http://www.activevb.de/tipps/vb6tipps/tipp0596.html
Работает как то хреново, но возможно подскажет какую нибудь идею... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| BUGOR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 3 Всего: 16 |
IcyJet, да, действительно, об этом я не подумал, Naghual говрит верно, нужно сохранять изменения, только я пока не могу представить себе реализацию этого...
|
|||
|
||||
| IcyJet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Обычно текст изменяется нажатием клавиш - ставим таймер, одна переменная накапливает нажатые клавишы (введенный текст), при каждом нажатие таймер снова запускается (тоесть пока пользыватель печатает таймер неможет сработать), если таймер сработал (пользыватель перестал печатать), переменная скидывает введенный текст и позицую где он начался вводится, в массив. Ну это так, ОБщая идея |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
А по моему проще отслеживать по событиям KeyDown, MoseDown и иже с ними.
-------------------- Я желаю всем Счастья! |
|||
|
||||
| IcyJet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
||||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
А что, это не изменение текста?
Тогда посмотри как работает это в Word. -------------------- Я желаю всем Счастья! |
|||
|
||||
| IcyJet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
||||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Зачем же так кричать то? А поведение данной фичи в Word в действительности зависит от версии. Но дело даже не в таймере. Дело в том, что Word делает "аналитику" изменений и позволяет повторять/изменять действия либо в пределах знака (когда после его изменения проходит какое-то время) либо в пределах слова (хотя оно и удалялось посимвольно). Тут нужно четко представить себе все варианты поведения и уж затем их реализовывать. Когда мы будем иметь полный алгоритм данного механизма, тогда и будем решать испоьзовать нам таймер или нет. Так что вопрос сейчас не в реализации. -------------------- Я желаю всем Счастья! |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |