Как проверить существует контрол или нет?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Как проверить существует контрол или нет?

Сообщение #set » 22.10.2006 (Вс) 20:30

Есть динамически размноженные фреймы и другая "живность".
Блин замучился с строкой проверки существует ли фрейм или он выгружен.
Вот пример как пробовал делать я:

Код: Выделить всё
Dim Adr As Integer
On Error GoTo nextF
Adr = 0
For n = 1 To 200
If Form1.PersonID(500 + n).Caption <>"" Then
    Data.TableArray(Adr, 0) = Form1.PersonID(500 + n).Caption
    Data.TableArray(Adr, 1) = Form1.LbName(500 + n).Caption
    Adr = Adr + 1
End If
nextF:
    Next n
End Sub


Но нихрена не работает. Кстати странно как реагирует переход при ошибке. При первой ошибке делает переход на метку а второй раз возвращаясь по циклу забывает что при ошибке делать. Блин запутался совсем :cry: [/code]

Serge Gavrilov
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 26.01.2006 (Чт) 11:35

Re: Как проверить существует контрол или нет?

Сообщение Serge Gavrilov » 22.10.2006 (Вс) 20:52

#set писал(а):Кстати странно как реагирует переход при ошибке. При первой ошибке делает переход на метку а второй раз возвращаясь по циклу забывает что при ошибке делать. Блин запутался совсем :cry:

Ничего странного при таком коде...
Почитайте об обработке ошибок.

#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Сообщение #set » 22.10.2006 (Вс) 21:18

Я пробовал разные варианты. И если бы нашел выход то не спрашивал. И потом меня не столько интересует обработка ошибок (хотя я эту сроку писал и в теле цикла но без результа) сколько проверка именно есть объект или нет.

#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Сообщение #set » 22.10.2006 (Вс) 22:07

Нашел решение. Добавил отдельно функцию проверки существует ли объект или нет. Все простенько. Но есть ли способ проверить без генерации ошибки типо if frame(1) <> null then работаем.

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 22.10.2006 (Вс) 22:35

Тебе ж написали уже:
Почитайте об обработке ошибок.

От себя добавлю (все таки я добрый фей):
Код: Выделить всё
...
for i = 0 to 100
on error resume next
s = Form1.Some_Control(i).name
if err then
  'контрол отсутствует
else
  'контрол присутствует
endif
next
...

Оно?

XPAHuTEJIb
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 71
Зарегистрирован: 12.07.2006 (Ср) 15:04
Откуда: Новый Уренгой

Сообщение XPAHuTEJIb » 23.10.2006 (Пн) 20:13

а я б ещё ошибочку сбросил, ато в следующий раз не среагирует.
Код: Выделить всё
err.clear


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList