Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.06;
Скачать: CL | DM;

Вниз

Memo и Undo   Найти похожие ветки 

 
karu   (2003-09-19 14:42) [0]

Когда сохраняешь содержимое Memo - [Memo.Lines.SaveToFile(...)], то обнуляется стек Undo.
Как сделать так, чтобы он не обнулялся?


 
Nikolay M. ©   (2003-09-19 15:20) [1]

Сохранять руками?


 
karu   (2003-09-22 12:23) [2]

Как это?


 
HolACost! ©   (2003-09-22 12:56) [3]

Делать не SaveToFile, а просто так, как бы ты делал, еслибы просто создавал построчно текстовый файл!


 
PVOzerski ©   (2003-09-22 12:57) [4]

Да и Undo можно руками сделать получше, чем стандартный. Отслеживать OnChange, вести протокол изменений на N шагов...


 
karu   (2003-09-22 17:02) [5]

Вариант, предложенный HolACost!, работает также, как и SaveToFile, т.е. CANUNDO обнуляется.
А совет PVOzerski, не представляю как реализовать.
Может кто-нибудь предложит алгоритм этого.


 
Nikolay M. ©   (2003-09-22 17:51) [6]


> Вариант, предложенный HolACost!, работает также, как и
> SaveToFile, т.е. CANUNDO обнуляется

А покажи, как делал?


 
PVOzerski ©   (2003-09-22 17:57) [7]

>А совет PVOzerski, не представляю как реализовать.
Ну, заводим, скажем, 2 связных списка (или динамических массива, или даже статических массива) записей, в список Undo вгоняем состояние Memo перед каждым измененим (в простейшем случае - текст в нем, если сложнее, то еще и выделенные области (позиция каретки), если экономнее - то различия между состоянием до изменения и после него), при каждом следующем изменении сведения о предыдущем "отодвигаются назад" (принцип стека). По команде Undo состояние Memo восстанавливается из последней записи в списке, а текущее состояние отправляется в аналогичный список Redo. При "ручном" (не как Undo) изменении содержимого Memo список Redo следует очищать. Вот и вся кухня.


 
karu   (2003-09-23 14:55) [8]

> Nikolay M.

var F: TextFile;
k: Integer;
...
AssignFile(F,FileName);
Rewrite (F);
for k := 0 to Memo.Lines.Count-1 do
WriteLn(F, Memo.Lines[k]);
CloseFile(F);
...

, если я правильно понял HolACost!
> PVOzerski
Спасибо, за идею! Так и попробую (наверно) :]



Страницы: 1 вся ветка

Текущий архив: 2003.10.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
1-18427
62mkv
2003-09-25 11:13
2003.10.06
Как написать на Delphi 5 прогу для BDE 4 ?


14-18633
Knight
2003-09-17 10:46
2003.10.06
Как вы относитесь к попапам?


6-18495
Vinnety
2003-08-09 17:14
2003.10.06
Массив записей через сокет


6-18512
Erik Ivanov
2003-08-07 16:41
2003.10.06
Перекодировка в TIdHTTP


3-18268
AlexWeb
2003-09-15 16:57
2003.10.06
Как отловить событие на изменение ширины колонки в DBGrid-е или в