Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание копии компанента... ...в процессе выполнения программы. 
V
    Опции темы
Anatol
Дата 17.3.2006, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 17.3.2006
Где: г. Самара

Репутация: нет
Всего: нет



Здравствуйте, уважаемые!

Можно ли создать копию компонента (например кнопки или созданного пользователем другого элемента управления) как копию класса в процессе выполнения программы? И каким образом?

Заранее благодарен, Анатолий.
PM MAIL ICQ   Вверх
Naghual
Дата 17.3.2006, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Можно, если я правильно понял вопрос


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Anatol
Дата 17.3.2006, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 17.3.2006
Где: г. Самара

Репутация: нет
Всего: нет



...задача следующая:
есть информация по скважинам которая должна отображаться в виде графиков на некотором компаненте созданым мной. При чем для каждой скважины необходим свой такой компанент...
вот отсюда и вопрос....
PM MAIL ICQ   Вверх
Naghual
Дата 17.3.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Это массив компонентов что-ли? А сколько кушает памяти один такой компонент и на сколько он загружает процессор?
Действительно ли есть необходимость ОДНОВРЕМЕННОГО показа нескольких графиков?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Anatol
Дата 18.3.2006, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 17.3.2006
Где: г. Самара

Репутация: нет
Всего: нет



Да, в процессе работы этой программы необходим набор компаненттов.
Сам по себе компонент не большой - это просто область для отображения графиков и размещение такого компанента в памяти не проблема.
Предполагается что понадобиться не более 10 таких компонентов (чаще 3-4), можно было бы их сразу поместить на форму и просто отображать по мере необходимости, но мне просто захотелось узнать о возможности их создавания в процессе программы.

... предположим что мне необходимо сделать копию простой кнопки в процессе выполнения программы - как это сделать?
PM MAIL ICQ   Вверх
Exception
Дата 18.3.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Маленькая просьба - пишите грамотно. Компонент, а не компанент.
PM   Вверх
Тутанхамец
Дата 18.3.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Копию простой кнопки можно делать так:

1) Нарисовать кнопку и ее свойству index присвоить значение, допустим, ноль. Возникнет массив элементов управления. Теперь можно добавлять в него элементы и удалять их спомощью операторов load и unload. (Создать такой массив VB настойчиво предлагает, когда элементы копируешь в режиме проектирования.)

2) В процедуру нажатия кнопки такой код:

Код

Private Sub Command1_Click(Index As Integer)
Dim n As Long, i As Long
n = Command1.Count
Load Command1(n)
Command1(n).Visible = True
Command1(n).Left = Command1(n - 1).Left + 200
Command1(n).Top = Command1(n - 1).Top + 200
Command1(n).Width = Command1(n - 1).Width
Command1(n).Height = Command1(n - 1).Height
Command1(n).ZOrder
End Sub


Кстати, я привык думать, что такие массивы - единственный путь в VB для создания новых контролов во время выполнения. Буду приятно удивлен, если это окажется не так.
Добавлено @ 15:48
Как сделать так, чтобы и из самопального AciveX можно было сделать такой массив я, признаться, не очень представляю.
Добавлено @ 15:56
Идея! Можно выводит каждый ActiveX на отдельной форме, а вот копий одной формы можно наделать сколько угодно.

То есть, рисуешь на Form1 свой график, а копии Form1 получаешь так:

Код

Option Explicit
Public f As Form1


Private Sub Command1_Click()
Set f = New Form1
f.Show
End Sub




PM MAIL   Вверх
Anatol
Дата 18.3.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 17.3.2006
Где: г. Самара

Репутация: нет
Всего: нет



Всем большое спасибо за участие в решение вопроса. Особенно спасибо тебе Тутанхамец.

З.Ы. ...прошу прощения за ошипки допущенные в теме тарапился однако...

Это сообщение отредактировал(а) Anatol - 18.3.2006, 16:58
PM MAIL ICQ   Вверх
Тутанхамец
Дата 18.3.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



На здоровье smile

P.S. Полезный вопрос, кстати. Если бы не он, я бы не заметил, что свойство index появляется у компонента автоматически. В режиме разработки ActiveX его не видно. Поэтому массив своих АктивИксов можно создавать абсолютно так же, как массив кнопок, текстбоксов и т.д.
PM MAIL   Вверх
Anatol
Дата 18.3.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 17.3.2006
Где: г. Самара

Репутация: нет
Всего: нет



...это именно то, что мне было нужно, я и не подозревал, что все будет настолько просто...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.