Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как создавать "многоуровневые" redo(повторить) и undo(отмени (http://forum.oszone.net/showthread.php?t=30230)

Xcode 07-10-2003 20:06 207857

Как создавать "многоуровневые" redo(повторить) и undo(отменить) в C++ Builder либо в Delfi.......
Если использовать стандартную функцую для TRichEdit то одна кнопка будет овечать на оба действия(отменить и повтоорить) и запоминать только 1 изменение. Как увелличить "уровни исправлений", томеж память кнопок undo & redo сделать больше.........

Prisoner 07-10-2003 21:53 207858

Разобраться с тем как работает один андо/редо и запоминать образы действий в массив отменяя/повторяя потом нужное. Более конкретно не знаю чем помочь, но так бы подошел к проблеме сам... интересно будет узнать мнения других форумчан...

Xcode 08-10-2003 15:21 207859

Prisoner
Цитата:

запоминать образы действий в массив отменяя/повторяя потом нужное.
Идея хороша.Но!
Прикинь: текстовый редактор(частный случай) офигенный текст, изменяю я одну букву. И че мне весь текст в масси взаталкивать? работать будет долго..... уже пробЫвал.....

ivank 08-10-2003 20:24 207860

При вводе буквы, тебе надо запомнить, только текущую позицию курсора и какой символ введён, что бы отменить перемещаешься к этой позиции и удалёешь одну букву.

При удалении куска текста, надо запомнить начальный индекс этого куска и сам кусок, соответственно для отмены - переходишь в соответствующую позицию и вставляешь удалённый текст.

итд по тому же принципу, те как это назвал Prisoner "запоминай образы действий". Это совсем не тоже самое, что и весь текст запоминать на каждом шаге.

Guest 09-10-2003 16:00 207861

По-моему, надо выделить более приемлемые для текстового редактора "образы действий", чем "вставка буквы на определенной позиции". А если было выделение? А если вставляли из буфера/в буфер?

Другой способ - запоминать действительно весь текст, но не всего документа, а определенной страницы (если это текстовый редактор типа ворда, то он же будет разбивать на страницы, а если не будет, то страница == фиксированное количество строк).

Xcode 12-10-2003 00:57 207862

Guest
интересная мысля. сенкс. попробую.



Время: 23:42.

Время: 23:42.
© OSzone.net 2001-