Отлов ошибки отсутствия св-ва у контрола

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Отлов ошибки отсутствия св-ва у контрола

Сообщение Space » 11.11.2008 (Вт) 21:35

мне нужно перейти на строку 10, если у контрола нет св-ва Locked. Иначе надо проверить значение св-ва Locked и выполнить переход либо на 20, либо на 10. Если св-во у контрола отсутствует, переход выполняется на 20, почему?
Код: Выделить всё
      On Error Resume Next 'если у контрола нет св-ва Locked
      If frm.ActiveControl.Locked Then GoTo 20
10

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Отлов ошибки отсутствия св-ва у контрола

Сообщение Antonariy » 11.11.2008 (Вт) 21:40

При отсутствии свойства переход на 20 выполнится при такой записи:
Код: Выделить всё
If frm.ActiveControl.Locked Then
    GoTo 20
End If
А при записи в одну строку не должен выполняться.
Лучший способ понять что-то самому — объяснить это другому.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Отлов ошибки отсутствия св-ва у контрола

Сообщение Space » 11.11.2008 (Вт) 22:03

нет, переход на 10 мне нужен. Надо так:
Код: Выделить всё
'если у контрола нет св-ва Locked, будет выполняться ?
      If frm.ActiveControl.Locked = False Then 'блокированным не подсвечиваем фокус
10
     End If

Меня интересует, что происходит при отсутствии свойства. Ошибки Run-Time нет, On Error не нужен. Но по какому принципу выполняется код?

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Re: Отлов ошибки отсутствия св-ва у контрола

Сообщение SSecurity » 11.11.2008 (Вт) 23:14

Space писал(а):мне нужно перейти на строку 10, если у контрола нет св-ва Locked. Иначе надо проверить значение св-ва Locked и выполнить переход либо на 20, либо на 10. Если св-во у контрола отсутствует, переход выполняется на 20, почему?
Код: Выделить всё
      On Error Resume Next 'если у контрола нет св-ва Locked
      If frm.ActiveControl.Locked Then GoTo 20
10


Почти так, но не так
Код: Выделить всё
On Error Resume Next
  X = Me.ActiveControl.Locked
  If Err = 0 Then GoTo 10 Else GoTo 20
  10 Debug.Print "Мы на 10ой строке"
  20 Debug.Print "Мы на 20ой строке"
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 58

    TopList