|
|
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Вопрос простой, ответ на него небось тоже простой! Но чего то я как то не пойму.. Итак: Как отменить ввод данных в контрол ТекстБокс и вернуть ему значение которое было до редактирования? Условие задачи: контрол не связан с данными. Спсибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2003, 20:17 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Заводим коллекцию. Заносим в нее значение текстбокса при открытии формы. На каждый AfterUpdate тоже заносим. Потом при желании достаем из нее любое из старых значений. Можно и без коллекции, если точно известно, какое именно из старых значений нужно восстановить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2003, 23:40 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
а что Undo не подойдет??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2003, 00:08 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
В событии BeforeUpdate этого элемента можно Undo вызвать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2003, 04:13 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Какой такой анду, если поле не связанно с данными? 2 Владимир Саныч. Такая фишка я меняю данные в поле, на бефоапдейт выскакивает меседж типа правильно ввели данные? Ну и Да. НЕТ. Кансел. жмем Нет ==> Cancel=true Кансел==> вот тут и нужен анду на предыдущее значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2003, 11:52 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
а типа OldValue или это из др. оперы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2003, 12:02 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
2 Sfagnum из другой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2003, 12:05 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
2 Jem: Не, я тогда не понял. Скажем, в текстбоксе поставлено 8. Юзер поменял его на 9. Получает мсджбокс. Теперь так: отвечает ес - остается его 9 отвечает ноу - возвращается 8 отвечает кансел - и тогда что должно произойти? Но в любом случае (и если кансел=ноу, и если кансел возвращает какое-то еще более древнее значение) можно все брать из предложенной мной коллекции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2003, 17:23 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
метод Саныча единственный, красивый, оптимальный. либо он (метод) - либо ничего. в развитии темы: яйца теже, вид с боку в качестве коллекции использовать таблицу. преимущества - значения не теряются при выходе из акеса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2003, 20:58 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Я боюсь, что тут какая-то недоработка в самой постановке. Что должен видеть юзер при нажатии на кансел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2003, 22:13 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
cansel можно не показывать, только да -нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2003, 16:41 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
В том-то и дело. А на случай "нет" у автора вопроса нет проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2003, 16:52 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Если нажимаем NO то это означает что юзер признает что ввел не правильно запись, отсюда Cancel=True на Before_Update , фокус остается на поле. Если нажимаем Cancel то это означает что юзер припарился и отменяет все свои потуги, вот здесь мне надо вернуть предыдущее значение. Если нажимаем YES то это означает что предупреждение об ответсвенности за введеную не напугало юзера и тот подтверждает введенную запись и мы ее сохраняем. Вроде все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 12:23 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Тогда надо поменять местами ноу и кансел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 12:47 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
2 BC как не меняй я так понял, что видимо без коллекции не обойтись. Однако если нажать кнопку ESC то "Откат" даже на не связанном поле происходит. Пробовал через SendKey но почему-то нет эффекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 16:50 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
2Jem Смотрю я на твой топик уже который день и на язык наворачивается только одно: А мы все паримся (шутка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 17:02 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
2 Vsevolod V Два дня командировки, только вчера приехал. Завтра опять уезжаю. Забежал на работу два раза, до access_a дело не дошло. Не успел физически просто. Кстати вариант ВС меня вполне устраивает, если он мне скажет что происходит при нажатии ESC на несвязанном поле то я от всех отстану З.Ы. Кстати я твои топиким / посты тоже смотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 17:17 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
> если он мне скажет что происходит при нажатии ESC Сорри, я не догадался, что это тоже был вопрос. Полагаю, происходит какая-то внутренняя вестчь, которую нам нашими средствами не воспроизвести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 17:23 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Все, когда приеду буду колбасить коллекцию. Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 17:56 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
что происходит при нажатии ESC на несвязанном поле Происходит Me.СвязанноеПоле.Undo, кстати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 21:44 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
т.е. Me.НЕсвязанноеПоле.Undo. Или связанное. Все равно Undo, в общем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 21:47 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Всетаки вариант Владимира Саныча поинтереснее будет. Можно хранить историю, прикрутил две кнопки "откат назад" и "отмена отката" и радуешся жизни :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 21:56 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
2 Geo Слушай если не сильно напрягу, кинь мне плиз пример где видно как работает фишка me.поле.undo Я тут чего-то совсем запутался.. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:18 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Боюсь что камнями закидают, но такое чувство что анду не происходит даже на связанном поле. Может быть работа анду зависит еще от чего-то кроме "связанности" поля.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:20 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
наверное самый крутой способ будет нарисовать на форме 3 кнопки код для одной : DBEngine.Workspaces(0).BeginTrans код для другой: DBEngine.Workspaces(0).Rollback нажимаешь на первую и ставишь эксперименты над данными какие хочешь. не понравилось - нажимай вторую )) да кстати если сохранить то DBEngine.Workspaces(0).CommitTrans ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:29 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, буду смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:31 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Кстати, если не ошибаюсь (энергичные меня поправят), пока фокус в поле - новое значение это свойство Text, а старое - Value. Может и это на что-нить сгодится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:34 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Наверное, я понял, в чем вопрос... Полю можно сделать унду, пока оно редактируются (пока у него есть св-во .Text) Записи можно делать унду, пока она редактируется (пока ей не сделали .Update) Сделать кнопку, на которую повесить Me.Поле.Undo можно, но это не даст совершенно никагого результата. Когда мы нажимаем на кнопку, сначала происходит потеря фокуса у этого поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:37 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Опоздал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:38 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Так мы что-то не поняли, у тебя что - Undo не работает на контроле Edit??? должен работать, ничего сложного там нет. P.S. прикол состоит еще в том, что контрол Edit(Поле) изначально умеет отменять внесен. изменения. Это не есть какой-то наворот Access. Для возврата(undo) ему надо через winAPI можно послать спец. сообщение - что-то типа WM_UNDO (точно уже не помню название) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:40 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Да получается что так как говори Итал и Geo. Мало того даже если на событие BeforeUpdate поля повесить Me.Поле1.Undo то ничего уже не произойдет. Однако на BeforeUpdate не сработает и OldValue. Вообще прикол Undo уже поздно OldValue еще рано! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:44 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Сделать кнопку, на которую повесить Me.Поле.Undo можно, но это не даст совершенно никагого результата. Когда мы нажимаем на кнопку, сначала происходит потеря фокуса у этого поля. Самое смешное, что года два назад я долго и мучительно изобретал способ как обойти проблему, пока не глянул в хелп. А проблема была такая. Ввожу в свободное поле дату начала периода щелкаю кнопку отчет и получаю его отфильтрованного по старому значению поля. Приходилось закрывать и открывать снова. Придумал же вот что. Программно при нажатии кнопки передавать фокус любому другому полю формы и возвращать обратно. Когда прочел про различие Text и Value, понял в чем была моя проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:45 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
2Витал Дык, у тебя была кнопка в панели, а не на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:47 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
новое значение это свойство Text, а старое - Value А это неправда, кажется. А может и правда... Я, чтобы посмотреть старое значение какого-нибудь поля формы, открываю рекордсетКлон, букмарком перехожу на тек. запись, и там смотрю. До .Update там все значения старые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:50 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
код screen.preveuscontrol.setfocus возвращает фокус на предыдущий контрол если что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:50 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Блин каких только приколов не бывает. Спасибо что не оставили без внимания, а то пятница ведь я думал все уже пьют пиво.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 16:56 |
|
||
|
Припарился под конец дня!
|
|||
|---|---|---|---|
|
#18+
Geo Дык, у тебя была кнопка в панели, а не на форме. Ни фига подобного - именно на форме!! Jem Undo уже поздно OldValue еще рано Дык! Попробуй просто Value. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 17:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1679349]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
87ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 435ms |

| 0 / 0 |
