powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возврат значений элементов управления
22 сообщений из 22, страница 1 из 1
Возврат значений элементов управления
    #39617107
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу ткнуть в нос ссылку если было или пнуть в правильном направлении :)
На форме имеется некоторое количество всевозможных элементов управления (списки, флажки и т.д.). Изменяя их состояние и выбирая определенные значения пользователь формирует условия запроса на выборку. Количество записей, соответствующее заданным условиям, выводится после каждого изменения условия запроса. Задача: сделать что-то типа кнопки "Отмена", нажимая на которую пользователь сможет пошагово возвращаться к предыдущим состояниям элементов управления. Т.е. что-то типа "стека клацаний мышой".
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617143
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КД, списфическая задача... Думаю готового решения найти будет сложно, тем более на VB/A/6.
Так и попробуй решить за счёт реализации стека. Сам по себе стек несложная структура.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617151
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да мне готового и не обязательно. Просто хотел узнать как в принципе решаются такие задачи. Куда-то ведь надо записывать имена контролов и их значения - таблица? Может, какие общие подходы есть (типа удобнее парой таблиц или одной, поля такие-то). Но если совсем никто не пробовал - поизобретаю велосипед )
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617156
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КД, КМК, задача не сильно тяжёлая (в рамках моих познаний). Написать структуру стека (два класса), создать 2 стека на уровне модуля формы (прямой и обратный) куда и писать каждый чих активного контрола. Потом через кнопачки (или как удобно) читать эти стеки и восстанавливать состояние контролов на тот момент. Я бы даже с таблицами не стал заморачиваться.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617166
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617167
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI, ну да, на основе этого и есть. Только там качество текста (указанная ссылка) отвратное, насколько я глянул.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617168
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургROI, ну да, на основе этого и есть. Только там качество текста (указанная ссылка) отвратное, насколько я глянул.
Сори не проверил.
Но pdf проверил.
У меня эта книга на столе (до дыр в свое время затерта)
Сейчас таких нет :)
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617170
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургсоздать 2 стека на уровне модуля формы (прямой и обратный)Зачем два? достаточно одного, плюс указатель текущего местоположения в нём.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617176
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaЗачем два?Когда назад прокручиваешь переносишь изменение во второй стек. Если начали производить изменения, второй просто сбрасываем.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617178
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас пример накидаю.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617189
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургКогда назад прокручиваешь переносишь изменение во второй стек. Если начали производить изменения, второй просто сбрасываем.То же самое реализуется и одним буфером с указателем текущего местоположения. При Undo указатель идёт назад, при Redo вперёд, а при корректировке буфер урезается до текущего указателя.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617199
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, а если вернулись немного назад и начали вводить новые данные? Проще скинуть чем вычислять чего там надо удалить.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617205
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургAkina, а если вернулись немного назад и начали вводить новые данные? Проще скинуть чем вычислять чего там надо удалить.
Чего там сложного-то?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Property NewAction(ActionData)
    posession = posession + 1
    ReDim Preserve Buffer(posession)
    Buffer(posession) = ActionData
End Property

Property UndoAction()
    PerformUndo Buffer(posession)
    posession = posession - 1
End Property

Property RedoAction()
    posession = posession + 1
    PerformRedo Buffer(posession)
End Property


При posession = UBound(Buffer) недоступен Redo, при posession = 0 недоступен Undo.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617210
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПанургAkina, а если вернулись немного назад и начали вводить новые данные? Проще скинуть чем вычислять чего там надо удалить.
Чего там сложного-то?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Property NewAction(ActionData)
    posession = posession + 1
    ReDim Preserve Buffer(posession)
    Buffer(posession) = ActionData
End Property

Property UndoAction()
    PerformUndo Buffer(posession)
    posession = posession - 1
End Property

Property RedoAction()
    posession = posession + 1
    PerformRedo Buffer(posession)
End Property



При posession = UBound(Buffer) недоступен Redo, при posession = 0 недоступен Undo.
Интересно, а что ТС об этом думает (классовой борьбе )
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617233
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургсейчас пример накидаю.Подзадержался, уходил...
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617236
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, в общем дело вкуса

ROIИнтересно, а что ТС об этом думает (классовой борьбе )Чего думает? Подождёт, посмотрит и решит хочет ли он это делать
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39617533
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за подсказки! Коллеги, я не так быстро думаю ) Не забывайте, я совсем не программер, и большое число моих постов на этом форуме - это в основном вопросы. Тем более, это не основная моя работа, а, скорее, хобби. Тем не менее, думаю что разберусь с примерами и решу как лучше сделать. Другое дело, что это может быть не очень быстро. Но возможность очень занятная и было бы интересно ее реализовать.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39618476
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург!
Смотрю Ваш пример со стеком. Можно задать тупой вопрос? Где там кнопка cmdFocus?
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39618492
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДМожно задать тупой вопрос?можно
КДГде там кнопка cmdFocus?в той же секции где и остальные. Её можно выбрать через окно свойств. Она маленькая, прозрачная, расположена в верхнем левом углу примечание формы (или как оно там...). Служит исключительно для принятия фокуса когда надо перекинуть его и отключить управляющие буфером кнопки. Мне было лень делать перенос на какие-нибудь другие контролы. А почему бы и нет? К тому же это макет.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39618495
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КД, кстати, можно попробовать использовать там другие события для фиксации изменений (не после обновления). Возможно будет лучше.
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39618514
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Разбираюсь потихоньку...
...
Рейтинг: 0 / 0
Возврат значений элементов управления
    #39618589
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КД, да, там есть небольшой баг - когда уничтожаем стек, не срабатывает событие "Изменён". Тут поправлено.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возврат значений элементов управления
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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