Форум: "Основная";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
Вниз
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.051 c