Создание массива элементов.

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

Создание массива элементов.

Сообщение GAGArin » 24.07.2003 (Чт) 11:17

Надо создать массив элементов или ссылок на них. Я пробовал:
В модуле.
Код: Выделить всё
Dim a (16) as CommandButton

А потом писал примерно так:
Код: Выделить всё
a(15) = command15
a(15).caption = "!!!"


Причем Command15 существует.
Он ответил что обьект отсутствует. Создать просто массив элементов не могу. Скажите мне че я не так сделал :(

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.07.2003 (Чт) 11:22

Ну так наверное наддо было в массиве создать элементы. Что то типа
Код: Выделить всё
set a(15)= new commandbutton

SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Сообщение SergeySV » 24.07.2003 (Чт) 13:33

Чтобы был массив ссылок, я делал так:

Dim a (16) as Variant
Set a(15) = command15
a(15).caption = "!!!"
Если заменить тип Variant на СommandButton работать не будет, не совсем понимаю почему они так не разрешили писать... видимо какая-то логика есть, но какая...


RayShade писал(а):Ну так наверное наддо было в массиве создать элементы. Что то типа
Код: Выделить всё
set a(15)= new commandbutton


А насколько я понимаю этот код (проверить не могу), должно получиться создание контрола и добавление его в массив, т.е. его по идее потом еще на форму размещать надо и т.д.....?
Главное двигаться не быстрее, чем думает твоя голова.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 24.07.2003 (Чт) 16:28

:) Спасибо! :)

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.07.2003 (Чт) 16:30

2 SergeySV

Ну да. Создали объект, потом его там на форму кладем и так далее.

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 25.07.2003 (Пт) 6:24

Есть разница между операторами Let и Set:

Код: Выделить всё
Dim a (16) as CommandButton
a(15) = command15 ' это Let

и
Код: Выделить всё
Dim a (16) as CommandButton
Set a(15) = command15  ' это Set
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 25.07.2003 (Пт) 8:46

Я уже понял что проблемка в этом была. А вот кто теперь мне обьяснит как обработать событие клика по одной кнопке из массива :?:

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Сообщение Urvin » 25.07.2003 (Пт) 8:53

Почему бы не использовать стандартно?-
cmdCommand(1877645).load
тогда
Sub cmdCommand_Click(Index as integer)
Не так страшен русский танк, как его пьяный экипаж

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 25.07.2003 (Пт) 9:15

Создать массив элементов можно и вручную в обычном VB. Но я не могу этого сделать т.к. версия VB мне не позволяет а если новая и вышла то достать ее мне проблематично. Я пишу на eMbedded Visual Basic 3.0 Это для карманных компьютеров под WIndows CE. Если кто знает о новой версии то скажите и мне тоже.

Алекс
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 30.04.2003 (Ср) 15:59
Откуда: Краснодар

Сообщение Алекс » 28.07.2003 (Пн) 17:57

Устанавливаешь Контрол1.index=0
Потом LOad КОНТРОЛ1(a)
Алекс.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 28.07.2003 (Пн) 18:17

Алекс
Гениально!!! Но я вроде обьяснил что не могу так сделать НЕМОГУ там вообще нет .index у СommandButton'ов Извини если резко, но меня эта проблема запарила, когда пришло уведомление, я думал может это уже ответ. Но его похоже не дождусь.

ЗЫ А проблемку я решил в лоб. Просто перебрал все возможности. Места занимает много больше(да и изящество на уровне каменного топора), но и работает быстрее.


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

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

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

    TopList