| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Создание копии компанента... |
| Автор: Anatol 17.3.2006, 21:21 |
| Здравствуйте, уважаемые! Можно ли создать копию компонента (например кнопки или созданного пользователем другого элемента управления) как копию класса в процессе выполнения программы? И каким образом? Заранее благодарен, Анатолий. |
| Автор: Naghual 17.3.2006, 21:25 |
| Можно, если я правильно понял вопрос |
| Автор: Anatol 17.3.2006, 21:32 |
| ...задача следующая: есть информация по скважинам которая должна отображаться в виде графиков на некотором компаненте созданым мной. При чем для каждой скважины необходим свой такой компанент... вот отсюда и вопрос.... |
| Автор: Naghual 17.3.2006, 21:42 |
| Это массив компонентов что-ли? А сколько кушает памяти один такой компонент и на сколько он загружает процессор? Действительно ли есть необходимость ОДНОВРЕМЕННОГО показа нескольких графиков? |
| Автор: Anatol 18.3.2006, 06:24 |
| Да, в процессе работы этой программы необходим набор компаненттов. Сам по себе компонент не большой - это просто область для отображения графиков и размещение такого компанента в памяти не проблема. Предполагается что понадобиться не более 10 таких компонентов (чаще 3-4), можно было бы их сразу поместить на форму и просто отображать по мере необходимости, но мне просто захотелось узнать о возможности их создавания в процессе программы. ... предположим что мне необходимо сделать копию простой кнопки в процессе выполнения программы - как это сделать? |
| Автор: Exception 18.3.2006, 12:49 |
| Маленькая просьба - пишите грамотно. Компонент, а не компанент. |
| Автор: Тутанхамец 18.3.2006, 15:45 | ||||
| Копию простой кнопки можно делать так: 1) Нарисовать кнопку и ее свойству index присвоить значение, допустим, ноль. Возникнет массив элементов управления. Теперь можно добавлять в него элементы и удалять их спомощью операторов load и unload. (Создать такой массив VB настойчиво предлагает, когда элементы копируешь в режиме проектирования.) 2) В процедуру нажатия кнопки такой код:
Кстати, я привык думать, что такие массивы - единственный путь в VB для создания новых контролов во время выполнения. Буду приятно удивлен, если это окажется не так. Добавлено @ 15:48 Как сделать так, чтобы и из самопального AciveX можно было сделать такой массив я, признаться, не очень представляю. Добавлено @ 15:56 Идея! Можно выводит каждый ActiveX на отдельной форме, а вот копий одной формы можно наделать сколько угодно. То есть, рисуешь на Form1 свой график, а копии Form1 получаешь так:
|
| Автор: Anatol 18.3.2006, 16:55 |
| Всем большое спасибо за участие в решение вопроса. Особенно спасибо тебе Тутанхамец. З.Ы. ...прошу прощения за ошипки допущенные в теме тарапился однако... |
| Автор: Тутанхамец 18.3.2006, 18:39 |
| На здоровье P.S. Полезный вопрос, кстати. Если бы не он, я бы не заметил, что свойство index появляется у компонента автоматически. В режиме разработки ActiveX его не видно. Поэтому массив своих АктивИксов можно создавать абсолютно так же, как массив кнопок, текстбоксов и т.д. |
| Автор: Anatol 18.3.2006, 19:36 |
| ...это именно то, что мне было нужно, я и не подозревал, что все будет настолько просто... |