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

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

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

Конечно. Сохраняйте все промежуточные значения.А подробнее с кодом?
...
Рейтинг: 0 / 0
26.03.2011, 10:38
    #37183530
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
undo
Например: создать массив который будет хранить стринг, и при каждом событии 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
26.03.2011, 14:10
    #37183689
undote
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
undo
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
26.03.2011, 14:23
    #37183701
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
undo
undote,

нет, не это

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

нет, не это

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

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

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

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

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

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

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

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

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

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

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

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


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