AllowEdits - объясните идиоту :)

kedzo
Дата: 03.06.2004 12:22:09
If Me.ed.Value = True Then
    Me.AllowEdits = True
    Me.AllowAdditions = True
    Me.AllowDeletions = True
Else
    Me.AllowAdditions = False
    Me.AllowDeletions = False
    Me.ed.Value = False
End If

Хочу: форма открывается только для просмотра. Есть переключатель типа toggle button - ed - нажимаешь все редактируется, нажимаешь еще раз все блокируется.
1. Вешаю этот код на событие после обновления ed - ни фига не работает (зачем блокируется?).
2. Вешаю на нажатие кнопки - не работает (опять таки)
3. Вешаю на получение фокуса - работает черз 2 раза на пятый
3.а. (почему? когда задумчиво (подержать пару секунд над переключателем) нажимешь на переключатель - срабатывает, когда быстро жмешь, не срабатывает? )
3.б. Почему когда ставишь точку прерывания на получение фокуса, то процедура срабатывает всегда?

Заработало это все в таком виде:

Private Sub ed_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Me.ed.Value = True Then
    Me.ed.Value = False
    Me.AllowEdits = False
    Me.AllowAdditions = False
    Me.AllowDeletions = False
Else
    
    Me.AllowEdits = True
    Me.AllowAdditions = True
    Me.AllowDeletions = True
    Me.ed.Value = True
End If
End Sub

Но вопросы остались...
ищ
Дата: 03.06.2004 12:31:36
"нажимаешь еще раз все блокируется"
вот ты и блокируещь сам себя
вот тебе и ответ на
"ни фига не работает (зачем блокируется?). "
kedzo
Дата: 03.06.2004 12:34:09
автор
вот ты и блокируещь сам себя

Это-то понятно, не ясно зачем блокируется сторонний, не привязанный к данным переключатель?!
paparome
Дата: 03.06.2004 12:42:30
автор
Это-то понятно, не ясно зачем блокируется сторонний, не привязанный к данным переключатель?!


А при чем тут данные - уж заблокировал редактирование на форме, так уж везде :)

Я из подобной ситуации выходил след. образом:
может быть блокирована или нет форма от внесения измененй в зависимости от условий (у меня в зависимости от пользователя) - есть поле, тоторое должно быть доступно для редактирования всегда (для всех пользователей)

- на событие получение фокуса в этом поле - запоминаю значение из AllowEdits и делаю его = true
- на событие потери фокуса - восстанавливаю AllowEdits

попробуй - у меня работает :)
kedzo
Дата: 03.06.2004 12:45:40
Я сделал по MouseDown по переключателю. См. выше.
Вопрос возник чисто из академического интереса :)