Создание массива своего контрола

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

Создание массива своего контрола

Сообщение SeT » 24.11.2005 (Чт) 15:07

Есть контрол, компилирующийся вместе с прогой. У него один серьёзный недостаток - нельзя массив сделать. Подскажите как его переделать? Ну или хоть намекните.
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Сообщение AndreyIl » 24.11.2005 (Чт) 15:49

Что за контрол? Пример есть?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 24.11.2005 (Чт) 16:43

Почему нельзя? Любой контрол можно замассивить. Положи его на форму и поставь свойтсво Index=0
Лучший способ понять что-то самому — объяснить это другому.

Slavicos
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 16.11.2005 (Ср) 17:04

Сообщение Slavicos » 24.11.2005 (Чт) 17:20

Код: Выделить всё
        Me.Label(1).Caption = txtColName2
        Me.Label(1).ToolTipText = txtColName2
        Me.Text(1).Text = "-"
        For intI = 2 To Val(txtCols) Step 1
            txtColName1 = .....
            txtColName2 = .....
            Load Me.Label(intI)
            With Me.Label(intI)
                .Top = Me.Label(intI - 1).Top + 360
                    .Caption = txtColName2
                Me.Label(intI).ToolTipText = txtColName2
                .Visible = True
            End With
            Load Me.Text(intI)
            With Me.Text(intI)
                .Top = Me.Text(intI - 1).Top + 360
                .Text = "-"
                .Visible = True
            End With
            'займемся внешним видом - опустим все, что надо
            Me.Label2.Top = Me.Label2.Top + 360
            Me.Label3.Top = Me.Label3.Top + 360
            Me.cmdPrevious.Top = Me.cmdPrevious.Top + 360
            Me.cmdNext.Top = Me.cmdNext.Top + 360
            Me.Height = Me.Height + 360
        Next intI
[syntax]
Здесь предполагается, что у LABEL и TEXT индексы равны "1"
Эти две вещи стоят на форме по умолчанию.
Больно не бить!

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 25.11.2005 (Пт) 15:25

Вы видать не про те контролы говорите. Нужный мне контрол типа сокетного, только работает пошустрее. А вот массивность в нём не продумана. Как в нём задать index?
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 25.11.2005 (Пт) 17:16

Массивность не придусмотрена не в одном контроле.
Это делает VB, причем делает для любого контрола.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Сообщение AndreyIl » 25.11.2005 (Пт) 17:47

Выложи контрол, попробуем.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 01.12.2005 (Чт) 16:59

http://dasharm.com/uploads/vbsocket.rar
контрол не мой, а DaSharm'а. Вот только он никак массив сделать не может.
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 01.12.2005 (Чт) 17:54

С контролом все в порядке, массивы делаются.
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.12.2005 (Чт) 18:15

Скорее всего контрол написан неправильно.
Просмотри код модуля, особенно те функции, которые обеспечивают каллбэки и события. Скорее всего в них используются глобальные переменные для хэндлов, их надо будет заменить на массивы.
Lasciate ogni speranza, voi ch'entrate.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 01.12.2005 (Чт) 20:00

Так вроде VB ругается, что массивы здесь объявлять нельзя?
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 02.12.2005 (Пт) 9:46

В архиве форма с массивами.
Вложения
vbsocket.rar
(30.66 Кб) Скачиваний: 24
Лучший способ понять что-то самому — объяснить это другому.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 02.12.2005 (Пт) 16:43

Всё, разобрался. Спасибо. Тема закрыта!
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010


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

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

Сейчас этот форум просматривают: AhrefsBot, Don Leno, SemrushBot и гости: 128

    TopList