|
|
|
ADODC
|
|||
|---|---|---|---|
|
#18+
Есть форма, на форме ADO DataControl, к нему прикручены контролы, у всех контролов CausesValidation = True. Все отлично, пока юзер ходит с контрола на контрол, меняет там что-то, Validate происходит, ADODC в курсе происходящего... Но если после изменения данных контрола юзер сразу жмет на закрытие формы, то Validation не происходит, ADODC в блаженном неведении, а нужно знать, менял он там хоть что-то или нет. Отдельную кнопку для закрытия формы делать нежелательно, как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 13:09:18 |
|
||
|
ADODC
|
|||
|---|---|---|---|
|
#18+
Используй Form_QueryUnload event. Проанализируй параметр unloadmode, если он равен vbFormControlMenu, значит юзер закрыл форму через нажатие "крестика" (или Alt+F4). Оттуда же можно принудительно дернуть Validate event для ADODC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 13:28:53 |
|
||
|
ADODC
|
|||
|---|---|---|---|
|
#18+
Пардон, фигню сказал про ADODC Validate :) Можно создать флажки (True/False) для каждого контрола. Событие Change контрола устанавливает соотв. флаг в True, Validate сбрасывает в False. В обработчике QueryUnload проверить все флаги и для тех, которые True дернуть Validate соответствующего контрола. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 13:44:10 |
|
||
|
ADODC
|
|||
|---|---|---|---|
|
#18+
Блин, тада проще кнопку нарисовать. А по-другому никак не выйдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 14:27:45 |
|
||
|
ADODC
|
|||
|---|---|---|---|
|
#18+
Погоди-ка, ведь фокус при нажатии на закрыть остается на контроле, через screen.activecontrol как "дернуть" его Validate? Глупый вопрос, сорри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 14:33:04 |
|
||
|
ADODC
|
|||
|---|---|---|---|
|
#18+
...если неизвестно заранее, какой именно контрол... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 14:50:29 |
|
||
|
ADODC
|
|||
|---|---|---|---|
|
#18+
Событие Change срабатывает каждый раз, когда вводится/стирается символ в текстбоксе. Если юзер ничего не менял, то и валидировать ничего не надо? Небольшое уточнение - для List и ComboBox нужно использовать событие Click. Если не хочешь плодить флаги - у контролов есть неиспользуемое свойство Tag - клади туда, например, "True" если данные были изменены и "False", если не изменены. Ну а чтобы дернуть обработчик события надо просто Call его :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2004, 18:36:13 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=343&tid=2168385]: |
0ms |
get settings: |
5ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 202ms |
| total: | 319ms |

| 0 / 0 |
