Как создать массив

Программирование на 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
Член-корреспондент академии 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
Член-корреспондент академии 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 и гости: 5

    TopList