powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / undo
25 сообщений из 51, страница 1 из 3
undo
    #37183134
undote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Есть код:
Код: plaintext
1.
Me.Text0.SetFocus
SendKeys "^{z}"
который возвращает полностью то состояние записи, которое было сохранено до новых изменений.
А как можно сделать, чтобы undo работала как в Ворде , т.е. возвращала запись пошагово до прежнего состояния?
...
Рейтинг: 0 / 0
undo
    #37183499
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
undote,

Конечно. Сохраняйте все промежуточные значения.
...
Рейтинг: 0 / 0
undo
    #37183518
undote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proundote,

Конечно. Сохраняйте все промежуточные значения.А подробнее с кодом?
...
Рейтинг: 0 / 0
undo
    #37183530
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например: создать массив который будет хранить стринг, и при каждом событии TextBox_Change - добавлять новый элемент и записывать значение текстового поля. при отмене действия - идти обратно по массиву и брать нужные элементы.

отмену лучше делать так:
Код: plaintext
1.
2.
3.
4.
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const EM_UNDO = &HC7

'Use
SendMessage Text1.hWnd, EM_UNDO, &H0, &H0
...
Рейтинг: 0 / 0
undo
    #37183689
undote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLADНапример: создать массив который будет хранить стринг, и при каждом событии TextBox_Change - добавлять новый элемент и записывать значение текстового поля. при отмене действия - идти обратно по массиву и брать нужные элементы.

отмену лучше делать так:
Код: plaintext
1.
2.
3.
4.
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const EM_UNDO = &HC7

'Use
SendMessage Text1.hWnd, EM_UNDO, &H0, &H0
Есть функция Функция GUIDFromString преобразует текстовую строку в код GUID, который является массивом типа Byte.
Вы это имеете ввиду?
...
Рейтинг: 0 / 0
undo
    #37183701
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
undote,

нет, не это

у вас хотя бы начальные знания есть по VB? или по нулям?
...
Рейтинг: 0 / 0
undo
    #37183709
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче, как-то так
...
Рейтинг: 0 / 0
undo
    #37183710
undote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proundote,

нет, не это

у вас хотя бы начальные знания есть по VB? или по нулям?Небольшие.
Речь идет о БД на Аксессе.
...
Рейтинг: 0 / 0
undo
    #37183711
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
undoteРечь идет о БД на Аксессе.
это надо было писать:
а) в первом посте
б) в форуме по аксессу

ну да ладно - см. мой пример - переделывай под свои нужды
...
Рейтинг: 0 / 0
undo
    #37183723
undote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proкороче, как-то такРугается на Undo() As String

Пишет:
"Compile error:
Member already exists in an object module from which this object module derives"
...
Рейтинг: 0 / 0
undo
    #37183741
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
undoteShocker.Proкороче, как-то такРугается на Undo() As String

Пишет:
"Compile error:
Member already exists in an object module from which this object module derives"

Ну назовите его Undodo, какая разница
...
Рейтинг: 0 / 0
undo
    #37183758
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот для аксесса вариант
там есть мелкое изменение
...
Рейтинг: 0 / 0
undo
    #37183778
undote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proвот для аксесса вариант
там есть мелкое изменениеНе могу открыть Ваш файл. Пишет, что невозможно открыть файл из-за возможных проблем с безопасностью...
Может лучше его заархивировать, а затем прикрепить к сообщению?
Спасибо.
...
Рейтинг: 0 / 0
undo
    #37183783
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разрешите скачивать файл если пользуетесь IE. Разрешите доступ к макросам в настройке безопасности Access
...
Рейтинг: 0 / 0
undo
    #37183784
undote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас открылся - пришлось его сначала заархивировать, а затем открыть из архива.
Спасибо, работает. Буду разбираться.
...
Рейтинг: 0 / 0
undo
    #37184499
sizesub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Осталась еще одна проблема, как заставить курсор следовать за "undo"
Можно, конечно сделать что-то вроде:
Код: plaintext
1.
Me.Text0.SelStart = pos -  1 
pos = Me.Text0.SelStart
Но это будет работать только в одну сторону.
А если нужно и влево и вправо вперемешку?
...
Рейтинг: 0 / 0
undo
    #37184585
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sizesub,

Код: plaintext
Len
?
...
Рейтинг: 0 / 0
undo
    #37184598
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть массив будет хранить структуру, в которой также будет сохраняться позиция символа.
Код: plaintext
1.
2.
3.
4.
Private Type uUNDO_STR
     sText As String
     iCursorPos As Long
End Type
...
Рейтинг: 0 / 0
undo
    #37185015
sizesub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLADПусть массив будет хранить структуру, в которой также будет сохраняться позиция символа.
Код: plaintext
1.
2.
3.
4.
Private Type uUNDO_STR
     sText As String
     iCursorPos As Long
End Type

Так... понимаю... А как мне правильно записать iCursorPos с функцией UBound, которая используется в примере от Shocker.Pro ?
...
Рейтинг: 0 / 0
undo
    #37185259
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sizesub,

Точно так же, как и сохранение текста в этот же момент.

Но есть нюанс. будет сохраняться та позиция курсора, которая возникла ПОСЛЕ редактирования. Чтобы сделать сохранение позиции ДО изменения, придется усложнить код, отслеживать действия пользователя с клавиатуры и мыши.
...
Рейтинг: 0 / 0
undo
    #37185716
sizesub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prosizesub,

Точно так же, как и сохранение текста в этот же момент.

Но есть нюанс. будет сохраняться та позиция курсора, которая возникла ПОСЛЕ редактирования. Чтобы сделать сохранение позиции ДО изменения, придется усложнить код, отслеживать действия пользователя с клавиатуры и мыши.Что-то не могу сообразить, как это записать. С текстом понятно. Но как с курсором быть, пока не понятно...
...
Рейтинг: 0 / 0
undo
    #37185722
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sizesubЧто-то не могу сообразить, как это записать. С текстом понятно. Но как с курсором быть, пока не понятно...
позиция курсора - .SelStart
...
Рейтинг: 0 / 0
undo
    #37185790
sizesub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProsizesubЧто-то не могу сообразить, как это записать. С текстом понятно. Но как с курсором быть, пока не понятно...
позиция курсора - .SelStartЭто я знаю.
Тут была попытка учесть позицию курсора:
...
Рейтинг: 0 / 0
undo
    #37185795
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sizesubЭто я знаю.
После этого был совет от VSVLAD - он реализован?
...
Рейтинг: 0 / 0
undo
    #37185838
sizesub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProsizesubЭто я знаю.
После этого был совет от VSVLAD - он реализован?Нет, пока не понимаю как...
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / undo
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]