|
undo
|
|||
---|---|---|---|
#18+
Приветствую. Есть код: Код: plaintext 1.
А как можно сделать, чтобы undo работала как в Ворде , т.е. возвращала запись пошагово до прежнего состояния? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2011, 19:58 |
|
undo
|
|||
---|---|---|---|
#18+
undote, Конечно. Сохраняйте все промежуточные значения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 09:29 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.Proundote, Конечно. Сохраняйте все промежуточные значения.А подробнее с кодом? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 10:20 |
|
undo
|
|||
---|---|---|---|
#18+
Например: создать массив который будет хранить стринг, и при каждом событии TextBox_Change - добавлять новый элемент и записывать значение текстового поля. при отмене действия - идти обратно по массиву и брать нужные элементы. отмену лучше делать так: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 10:38 |
|
undo
|
|||
---|---|---|---|
#18+
VSVLADНапример: создать массив который будет хранить стринг, и при каждом событии TextBox_Change - добавлять новый элемент и записывать значение текстового поля. при отмене действия - идти обратно по массиву и брать нужные элементы. отмену лучше делать так: Код: plaintext 1. 2. 3. 4.
Вы это имеете ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 14:10 |
|
undo
|
|||
---|---|---|---|
#18+
undote, нет, не это у вас хотя бы начальные знания есть по VB? или по нулям? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 14:23 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.Proundote, нет, не это у вас хотя бы начальные знания есть по VB? или по нулям?Небольшие. Речь идет о БД на Аксессе. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 14:35 |
|
undo
|
|||
---|---|---|---|
#18+
undoteРечь идет о БД на Аксессе. это надо было писать: а) в первом посте б) в форуме по аксессу ну да ладно - см. мой пример - переделывай под свои нужды ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 14:39 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.Proкороче, как-то такРугается на Undo() As String Пишет: "Compile error: Member already exists in an object module from which this object module derives" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 15:01 |
|
undo
|
|||
---|---|---|---|
#18+
undoteShocker.Proкороче, как-то такРугается на Undo() As String Пишет: "Compile error: Member already exists in an object module from which this object module derives" Ну назовите его Undodo, какая разница ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 15:26 |
|
undo
|
|||
---|---|---|---|
#18+
вот для аксесса вариант там есть мелкое изменение ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 15:42 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.Proвот для аксесса вариант там есть мелкое изменениеНе могу открыть Ваш файл. Пишет, что невозможно открыть файл из-за возможных проблем с безопасностью... Может лучше его заархивировать, а затем прикрепить к сообщению? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 16:20 |
|
undo
|
|||
---|---|---|---|
#18+
Разрешите скачивать файл если пользуетесь IE. Разрешите доступ к макросам в настройке безопасности Access ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 16:29 |
|
undo
|
|||
---|---|---|---|
#18+
Сейчас открылся - пришлось его сначала заархивировать, а затем открыть из архива. Спасибо, работает. Буду разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2011, 16:29 |
|
undo
|
|||
---|---|---|---|
#18+
Приветствую. Осталась еще одна проблема, как заставить курсор следовать за "undo" Можно, конечно сделать что-то вроде: Код: plaintext 1.
А если нужно и влево и вправо вперемешку? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2011, 14:39 |
|
undo
|
|||
---|---|---|---|
#18+
Пусть массив будет хранить структуру, в которой также будет сохраняться позиция символа. Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2011, 16:13 |
|
undo
|
|||
---|---|---|---|
#18+
VSVLADПусть массив будет хранить структуру, в которой также будет сохраняться позиция символа. Код: plaintext 1. 2. 3. 4.
Так... понимаю... А как мне правильно записать iCursorPos с функцией UBound, которая используется в примере от Shocker.Pro ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 00:51 |
|
undo
|
|||
---|---|---|---|
#18+
sizesub, Точно так же, как и сохранение текста в этот же момент. Но есть нюанс. будет сохраняться та позиция курсора, которая возникла ПОСЛЕ редактирования. Чтобы сделать сохранение позиции ДО изменения, придется усложнить код, отслеживать действия пользователя с клавиатуры и мыши. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 10:24 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.Prosizesub, Точно так же, как и сохранение текста в этот же момент. Но есть нюанс. будет сохраняться та позиция курсора, которая возникла ПОСЛЕ редактирования. Чтобы сделать сохранение позиции ДО изменения, придется усложнить код, отслеживать действия пользователя с клавиатуры и мыши.Что-то не могу сообразить, как это записать. С текстом понятно. Но как с курсором быть, пока не понятно... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 14:05 |
|
undo
|
|||
---|---|---|---|
#18+
sizesubЧто-то не могу сообразить, как это записать. С текстом понятно. Но как с курсором быть, пока не понятно... позиция курсора - .SelStart ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 14:08 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.ProsizesubЧто-то не могу сообразить, как это записать. С текстом понятно. Но как с курсором быть, пока не понятно... позиция курсора - .SelStartЭто я знаю. Тут была попытка учесть позицию курсора: ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 14:33 |
|
undo
|
|||
---|---|---|---|
#18+
sizesubЭто я знаю. После этого был совет от VSVLAD - он реализован? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 14:35 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.ProsizesubЭто я знаю. После этого был совет от VSVLAD - он реализован?Нет, пока не понимаю как... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 14:50 |
|
undo
|
|||
---|---|---|---|
#18+
sizesubНет, пока не понимаю как... Как работает мой код, ты понимаешь или нет? Ты определись: если хочешь разобраться и научиться - это одно. Если хочешь, чтобы за тебя все сделали - так и скажи, мол разбираться не хочу, сделайте мне. Как правило, кто-то делает, когда такой простой пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 14:54 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.ProsizesubНет, пока не понимаю как... Как работает мой код, ты понимаешь или нет? Ты определись: если хочешь разобраться и научиться - это одно. Если хочешь, чтобы за тебя все сделали - так и скажи, мол разбираться не хочу, сделайте мне. Как правило, кто-то делает, когда такой простой пример.Конечно, хочу разобраться. В Вашем примере используется функция UBound для работы с массивами. Синтаксис: UBound(arrayname[, dimension]) Если функция возвращает 0, то ничего не происходит, иначе запоминаются все шаги изменения. Как мне запомнить изменение положения курсора, чтобы он двигался в нужную сторону, я пока не понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 15:16 |
|
undo
|
|||
---|---|---|---|
#18+
Нужно запоминать позицию курсора, в которой он был ДО того момента, как произошли изменения. Для этого надо отслеживать события клавиатуры и мыши KeyUp, MouseUp и запоминать позицию курсора в какой-то временной переменной. Как только возникает событие Change, в массив вместе с новым значением текста заносить и позицию курсора. А при откате - восстанавливать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 15:27 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.ProНужно запоминать позицию курсора, в которой он был ДО того момента, как произошли изменения. Для этого надо отслеживать события клавиатуры и мыши KeyUp, MouseUp и запоминать позицию курсора в какой-то временной переменной. Как только возникает событие Change, в массив вместе с новым значением текста заносить и позицию курсора. А при откате - восстанавливать.Так, хорошо... Такой вопрос, как мне записать в массив вместе с текстом позицию курсора? Синтаксис... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 16:06 |
|
undo
|
|||
---|---|---|---|
#18+
> Автор: sizesub > Такой вопрос, как мне записать в массив вместе с текстом позицию курсора? Как обычно: Код: plaintext 1.
Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 16:21 |
|
undo
|
|||
---|---|---|---|
#18+
sizesubТак, хорошо... Такой вопрос, как мне записать в массив вместе с текстом позицию курсора? Синтаксис... С помощью оператора присваивания: "=" Я ж спросил - понятно, как работает мой код? Ответ был "понятно". VSVLAD предложил использовать структуры (Type в синтаксисе VB), ответ был "Так... понимаю." Можно использовать и два массива, как предлолжил Игорь. Что сейчас-то вопросы вызывает? Давай все-таки определись, может все-таки учебник почитать про то, что такое массивы и вообще по основам синтаксиса? "Хочу разобраться"... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 16:40 |
|
undo
|
|||
---|---|---|---|
#18+
> Автор: Shocker.Pro > Можно использовать и два массива, как предлолжил Игорь. Я не предлагал я дал кусочек кода иллюстрирующий как присваивать данные Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 17:59 |
|
undo
|
|||
---|---|---|---|
#18+
> Автор: Игорь Горбонос Сбили меня тут. Я хотел сказать, что для себя я "завернул" это все в класс и использовал бы его. Навернул бы его подпиской на интересующие события нужного контрола и регистрировал все в них, наружу выставил бы только методы Undo и Redo, добавил бы ещё необязательный параметр количества отменяемых шагов(если нужно) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2011, 18:06 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.ProЧто сейчас-то вопросы вызывает? Пытаюсь попробовать вариант с двумя массивами: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
Частично работает. Что тут неправильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2011, 02:02 |
|
undo
|
|||
---|---|---|---|
#18+
sizesub, этой строкой Option Compare Database что делается? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2011, 09:40 |
|
undo
|
|||
---|---|---|---|
#18+
sizesubЧастично работает. Что тут неправильно? Почему ты определил второй массив как строковой? Это неправильно, но на функционал в данном случае не влияет. 10434216 10431856 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2011, 09:40 |
|
undo
|
|||
---|---|---|---|
#18+
Автору уже дали интересное решение с коллекциями. И совершенно непонятно, почему он им пренебрег undo ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2011, 09:54 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.ProsizesubЧастично работает. Что тут неправильно? Почему ты определил второй массив как строковой? Это неправильно, но на функционал в данном случае не влияет.Да, в этом было все дело. Сейчас все хорошо работает. Единственное, после того, как последнее изменение было возвращено, курсор убегает в начало текста, а не остается рядом с последним возвращенным знаком. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2011, 10:32 |
|
undo
|
|||
---|---|---|---|
#18+
хе-хе-хеАвтору уже дали интересное решение с коллекциями. И совершенно непонятно, почему он им пренебрег undo Не пренебрегает, а хочет попробовать и другие способы решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2011, 10:34 |
|
undo
|
|||
---|---|---|---|
#18+
Здравствуйте. В продолжении темы. Подскажите, как решить обратную задачу - REDO? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 19:28 |
|
undo
|
|||
---|---|---|---|
#18+
sizesub, так а Вы решили undo? Выложите код пожалуйста, а в чём трудность наоборот? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 19:56 |
|
undo
|
|||
---|---|---|---|
#18+
Ципихович Эндрюsizesub, так а Вы решили undo? Выложите код пожалуйста, а в чём трудность наоборот?Так рабочий код выложен - смотрите выше. Как после undo сделать redo, пока не могу сообразить. Вы знаете как? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 20:02 |
|
undo
|
|||
---|---|---|---|
#18+
sizesub, рабочий код выложен - смотрите выше - там много чего выложено, где именно дата, время сообщения в котором выложен??? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 20:30 |
|
undo
|
|||
---|---|---|---|
#18+
Ципихович Эндрюsizesub, рабочий код выложен - смотрите выше - там много чего выложено, где именно дата, время сообщения в котором выложен??? код ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 21:03 |
|
undo
|
|||
---|---|---|---|
#18+
sizesub, форма на ней лейбл2, так?, а что такое Text0 TextBox???? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 21:10 |
|
undo
|
|||
---|---|---|---|
#18+
Ципихович Эндрюsizesub, форма на ней лейбл2, так?, а что такое Text0 TextBox????Да, TextBox ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 21:17 |
|
undo
|
|||
---|---|---|---|
#18+
sizesub, у меня на этой строке: ReDim Preserve arrText(UBound(arrText) + 1) ошибка 9 и я Васспрашивал не знаю, что делает строка Option Compare Database её выделяет красным её я заремарчил ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 21:31 |
|
undo
|
|||
---|---|---|---|
#18+
sizesub, Рекомендую не поддерживать разговор с местным клоуном, дабы не плодить бессмысленные посты. Модератору же предлагаю быть последовательным. По сути вопроса - надо просто не уменьшать размер массива в момент Undo, а вместо Ubound завести переменную - указатель на массив, который будет определять текущее положение состояния отмены. Тогда передвигать этот указатель можно будет как назад (Undo), так и вперед (Redo). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 21:34 |
|
undo
|
|||
---|---|---|---|
#18+
В общем - вот так. Я модифицировал свой собственный первоначальный пример (без позиционирования курсора) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 21:49 |
|
undo
|
|||
---|---|---|---|
#18+
Shocker.Pro, спасибо, лично мне всё понятно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 22:02 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2158836]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
others: | 325ms |
total: | 481ms |
0 / 0 |