массив контролов

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

массив контролов

Сообщение kif » 31.03.2005 (Чт) 23:15

Я искал, но чё-то не нашел.

Вопрос следующий.

Мне нужно во время работы программы пересоздавать массив контролов, создаю его так:
Код: Выделить всё
for i=1 to 10
load MyControl(i)
next


а как мне убить все элементы кроме нулевого?
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 31.03.2005 (Чт) 23:16

Упорно видать искал :) Попробуй UnLoad, может и поможет...

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 31.03.2005 (Чт) 23:18

Пробывал, пишет, что Unload не используется в этом контексте.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 31.03.2005 (Чт) 23:26

Тогда может так:

Код: Выделить всё
Set MyControl(i) = Nothing

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 31.03.2005 (Чт) 23:44

Код: Выделить всё
Set MyControl(i) = Nothing
не помогает.

Код: Выделить всё
For i = 1 To M_S
Unload wsk(i) - у меня все работает...
Next

тоже не работает.

может это из-за того, что это в ActiveX Control?
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 31.03.2005 (Чт) 23:47

Если что-то было загружено методом Load, то это потом можно выгрузить нафиг методом Unload, а раз у тебя не работает, то кроме "Код в студию" сказать нечего...

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 31.03.2005 (Чт) 23:51

BV писал(а):Тогда может так:
Код: Выделить всё
Set MyControl(i) = Nothing
Так ты тока потеряешь связь с контролом и ищи его потом - свищи :lol:

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 01.04.2005 (Пт) 0:02

Код: Выделить всё
Private Sub CountControl()
  Dim i As Integer
  Dim P As Long
  Dim K As Long
  Dim dd As Image
 
  For i = ImageWork.Count - 1 To 1 Step -1
    Set ImageWork(i) = Nothing
  Next
  K = Int(UserControl.Width / 225) - 1
  For i = 1 To K
    Load ImageWork(i)
    ImageWork(i).Top = 0
    ImageWork(i).Left = P
    ImageWork(i).Visible = True
    P = P + 225
  Next
End Sub
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 01.04.2005 (Пт) 0:05

фунцкия CountControl вызывается каждый раз при resize UserControlа.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 01.04.2005 (Пт) 0:28

Код: Выделить всё
Dim i As Integer
  Dim P As Long
  Dim K As Long
   
  For i = ImageWork.Count - 1 To 1 Step -1
    Unload ImageWork(i)
  Next
  K = Int(UserControl.Width / 225) - 1
  For i = 1 To K
    Load ImageWork(i)
    ImageWork(i).Top = 0
    ImageWork(i).Left = P
    ImageWork(i).Visible = True
    P = P + 225
  Next


ошибка выскакивает при повторном вызове процедуры когда создано 5 элементов.
невозможно использовать unload в данном контексте
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 01.04.2005 (Пт) 0:32

Ну так соглашайся на отладку и посмотри, чему у тебя равет в этот момент (I), похоже ты пытаешься Unload-ить несуществующий контрол... Т.е. наверное некорректно заполняется ImageWork.Count

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 01.04.2005 (Пт) 0:35

Да запускал я в режиме отладки.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 01.04.2005 (Пт) 0:38

А она (прога) у тя ни один контрол анлоадить не хочет, или когда как?

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 01.04.2005 (Пт) 0:48

0-й создан в десигн тайм

создаю еще 3 - всего 4
в цикле с конца тормозит на 4-м
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 01.04.2005 (Пт) 0:51

kif писал(а):0-й создан в десигн тайм

создаю еще 3 - всего 4
в цикле с конца тормозит на 4-м


т.е. по индексу 3
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.


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

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

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

    TopList