|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.03.2008, 23:54 | #1 |
Форумчанин
Регистрация: 25.12.2007
Сообщений: 655
|
код для текстового редактора
Подскажите код для текстового редактора что-бы
можно было вернуться на шаг назад,как в WordPad (то есть что то написал,удалил,а потом вернул нажав на кнопку "вернуть)
За частые поиски был забанен во всех известных
поисковых системах! |
07.03.2008, 09:03 | #2 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Можно действовать так:
Создать переменную bufer:string; Процедура Удаление 1.buf:=''; 2.копировать в буфер, то что удаляете 3.удаление Процедура Отмена insert(buf,s,i); Примерно такая последовательность. Можно создать например три буфера, чтобы отменять три последних удаления. А код надо писать в контексте вашей программы. |
07.03.2008, 18:46 | #3 |
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
Позвольте вопрос по теме.
В Delphi 7 (по крайней мере у меня), можно возвращаться назад до последнего сохранения, - сколько там буферов? - Может они просто динамически создаются?
Всё гениальное - просто!
|
07.03.2008, 20:16 | #4 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
я сделал у себя в программе отмену до 3-х действий. Действительно, во всех серьезных программах наподобие Word, Photoshop, Delphi отмена идет до самого начала. Как это можно реализовать?
|
07.03.2008, 20:20 | #5 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Используя динамический массив.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
07.03.2008, 20:22 | #6 |
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
Как вариант.
Код:
Или в файл записывать изменения, каждое изменение с определённой цифры начинается, так можно и отмену и повтор реализовать.
Всё гениальное - просто!
|
07.03.2008, 20:33 | #7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Не нужно делать никаких массивов, тем более, четырехмегабайтных, просто так. Изменения накапливаются последовательно, поэтому идеальные структуры для их хранения - списки или стэки. К тому же, желательно оптимизировать добавление данных, чтобы не записывать каждый раз весь документ
|
07.03.2008, 20:37 | #8 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
а если я делаю отмену-повтор структуры, в которой по 30 элементов?
|
07.03.2008, 22:40 | #9 |
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
Я в какой-то проге встречал такое, что содержимое сохраняется полнотью, т.е. в файле хранится полностью текст и когда отменяешь действие - просто считывается нужный кусочек файла и прописывается в текстовое поле, то же самое и с повтором, а когда сохраняешь документ, тот файл затирается.
Всё гениальное - просто!
|
08.03.2008, 20:11 | #10 |
Регистрация: 08.03.2008
Сообщений: 5
|
А не легче ли так : Memo1(или что там у тебя).Undo; Эффект такой же что
и у клавиш Ctrl + Z. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Настройка редактора кода | Hottabych | Общие вопросы Delphi | 5 | 29.05.2008 21:02 |
Где скачать исходник среднего текстового редактора (типа WordPad) с подробным описанием всех функций. | Bill Gates | Софт | 2 | 07.01.2008 07:39 |
Нужен Исходник текстового редактора на паскале | deadh5n1 | Помощь студентам | 1 | 19.12.2007 12:58 |
создание графического редактора в Delphi? | parano_ya | Помощь студентам | 1 | 29.04.2007 08:17 |