Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Начал я изучать ActiveX ... Добавлено: 22.09.03 14:52  

Автор вопроса:  sArutiun | ICQ: 153685354 

Из книги примеры пробовал делать, вроде все получается.

Пришла мне в голову мысль попробовать самому что-нибудь написать. Остановился на active который будет выводить диаграмму типа как в Екселе. На этот актив будет передаваться массив двумерный (1 - числа, 2 - имена). И по данным этого массива будут чертиться разноцветные столбцы. Внизу будут имена, а столбцы будут показывать величину чисел по конкретному имени.

Но как в активХ передать этот массив?

 

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 grayk



Вопросов: 5
Ответов: 100
 Профиль | | #1 Добавлено: 22.09.03 15:12

Способы, которые пришли на ум сразу:

1. Тип Variant - и передавать весь массив целиком

2. Создать метод Add(Имя as String, Значение as Single) и добавлять данные в динамический массив в теле метода

3. Создать индексированное свойство с пользовательским типом, в который "зашить" и имя, и значение.

Ответить

Номер ответа: 2
Автор ответа:
 sArutiun



ICQ: 153685354 

Вопросов: 11
Ответов: 42
 Профиль | | #2 Добавлено: 22.09.03 15:41

Я и передаю его целиком, только где в активеХ его принимать?

АктивХ называется  CtrlDiagramma1

В начале актива описываю переменную

Private mArray() As String

Потом сделал свойство Public WriteOnly Property InValue() as String

Public WriteOnly Property InArray() As String

Set(ByVal Value As String)

mArray = Value

****** активХ в этом месте выдает ошибку ******

Print(mArray)

End Set

End Property 

а из самой формы (Form1) пробую запускать

CtrlDiagramma1.InArray = Array

а форма в этом месте выдает ошибку.

Пробовал переделывать тип переменной на Variant не помогает.

 

Ответить

Номер ответа: 3
Автор ответа:
 grayk



Вопросов: 5
Ответов: 100
 Профиль | | #3 Добавлено: 22.09.03 15:59

У тебя же mArray - массив строк, а Value в свойстве - просто строка. Поэтому присваивание не получается - несоответствие типов. Объяви свойство as Variant. И Value as Variant тоже.

Public WriteOnly Property InArray() as Variant

Set(ByVal Value as Variant)

mArray=Value

End Set

End Property

Обрабатывай mArray, не забывая, что это массив.

Ответить

Номер ответа: 4
Автор ответа:
 sArutiun



ICQ: 153685354 

Вопросов: 11
Ответов: 42
 Профиль | | #4 Добавлено: 22.09.03 16:21

Ура!!!

Заработало. Спасибо за помощь grayk .

 

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам