Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Nikolka
-
- Продвинутый пользователь

-
-
- Сообщения: 174
- Зарегистрирован: 01.01.2004 (Чт) 2:06
Nikolka » 24.04.2004 (Сб) 14:02
Здрасте!
Волнует проблема: ранее для создания массива просто брал и визуально их создавал (скажем Image1 => Copy => Paste => Yes). Но сейчас очень нужно следующее:
1) Программно загрузить, скажем Picture1
2) Программно сделать из неё массив, скажем Picture1(0) и Picture1(1)
Помогите плиз!
-
Tarik
-
- Агент Системы

-

-
- Сообщения: 1222
- Зарегистрирован: 03.01.2003 (Пт) 16:05
- Откуда: Москва
-
Tarik » 24.04.2004 (Сб) 15:45
Для начала тебе нужно создать хотя бы один экземпляр контрола, из которого ты хочешь сделать массив. Присвой св-ву index значение 0.
Затем просто загружай новые элементы массива вот так:
- Код: Выделить всё
Load Picture1(1) 'загрузить Picture1 с индексом 1
Picture1(1).Visible=True 'сделать его видимым
Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!
-
Nikolka
-
- Продвинутый пользователь

-
-
- Сообщения: 174
- Зарегистрирован: 01.01.2004 (Чт) 2:06
Nikolka » 24.04.2004 (Сб) 21:09
Нет, так я делаю сейчас, но надо просто программно загружать новые объекты и ПРОГРАММНО делать их массивами.
-
A.A.Z.
-
- Член-корреспондент академии VBStreets

-
-
- Сообщения: 3035
- Зарегистрирован: 30.06.2003 (Пн) 13:38
-
A.A.Z. » 25.04.2004 (Вс) 16:53
Программно загружать объекты:
- Код: Выделить всё
Private WithEvents Picture1 As PictureBox
Sub Form_Load()
Set Picture1 = Me.Controls.Add("VB.PictureBox", "Picture")
With Picture1
.Visible = True
'и так далее...
End With
End Sub
Sub Form_Unload(Cancel As Integer)
Set Picture1 = Nothing
End Sub
Нет меня больше
-
Amed
-
- Алфизик

-
-
- Сообщения: 5346
- Зарегистрирован: 09.03.2003 (Вс) 9:26
-
Amed » 25.04.2004 (Вс) 17:33
Это понятно. А вот как динамически подгружать массивы объектов (индексированные)? У меня не вышло...
-
A.A.Z.
-
- Член-корреспондент академии VBStreets

-
-
- Сообщения: 3035
- Зарегистрирован: 30.06.2003 (Пн) 13:38
-
A.A.Z. » 25.04.2004 (Вс) 21:23
Что ж тут сложного? Делаем массив имен переменных, а к каждому новому объекту присваиваем новое имя. Из VB вызов будет через массив переменных, но адресоваться он будет не массиву, а самостоятельным объектам. Хотя, возможно, есть и другой способ.
- Код: Выделить всё
Const LB As Long = 0 'Самый первый индекс
Const UB As Long = 1 'Самый последнмй индекс
Dim Picture1() As PictureBox, I&, X&, Y&
Sub Form_Load()
ReDim Picture1(LB To UB) As PictureBox
For I = LB To UB
Set Picture1(I) = Me.Controls.Add("VB.PictureBox", "Picture" & I)
With Picture1(I)
.Visible = True
.Move X, Y
X = X + 100
Y = Y + 100
End With
Next
End Sub
Sub Form_Unload(Cancel As Integer)
For I = LB To UB
Set Picture1(I) = Nothing
Next
End Sub
Нет меня больше
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: PetalBot, SemrushBot, Yandex-бот и гости: 26