Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Создание объектов в RealTime Добавлено: 13.01.06 14:57  

Автор вопроса:  VERiTAS
Как создавать объекты на форме в реалтайме я знаю, но вот, помогите разобраться:
1) как создать к примеру PictureBox в реалтайме именно в контейнере, например во Frame
2) и как создать несколько объектов одного имени, ну т.е. с Индексами

??? оооочень надо, потому что заранее создавать PictureBox - это не есть хорошо. Да и к тому же если придется создать 200 PB, а не 4 - лишний расход памяти и ресурсов, да и собственна размер программы прибавит в весе. Заранее благодарен

Ответить

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

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



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 13.01.06 15:16
Создать массив контролов в рантайме нельзя.
А чем тебя не устраивает создать в дизайне один PB и поставить ему индекс=0?

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 13.01.06 15:25
Всё понятно.. Как с пом. VB6 делать Пикчерсы в контейнерах.. Создай контрол: Picture в Frame, сделай нужные события и свойства, а дальше - по обычной схеме: контрол на форме + подгружаем все остальные. Есть способ чуть сложнее, но ещё лучше: создавай контролы и делай пикчерсы с пом. API. А вместо массива контролов создай массив LONG с hWnd родительских контролов.

Ответить

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



Вопросов: 5
Ответов: 6
 Профиль | | #3 Добавлено: 13.01.06 17:25
о, GSerg, че перебрался на VBNet ( и че случилось с bbs.vbstreets.ru не знаешь?)

по поводу вопроса, GSerg какой смысл в этом ? зачем создавать PB с Index=0. Мне могут понадобиться много PB, но мне нужно чтобы они были в массиве. Ну раз нельзя так значит нельзя.

Суть идеи в том что, после драга на форме, проиходит "граб" ICON пришедшей ссылки на exe файл и в PB(он является контейнером) появляется ICON пришедшего файла, посредством рисования этой иконки в дочернем PB, но если файлов приходит несколько, то появляется необходимость создания нескольких PB чтобы в каждом прорисвать свою иконку.

mc-black я понял твою идею, попробую реализовать на сколько я ее понял. Спасибо за совет.

?? Это что же мне придется заранее прописать к примеру 200 Sub'ов для каждого PB - О УЖАС !!!

Ответить

Номер ответа: 4
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #4
Добавлено: 13.01.06 18:50
>>>зачем создавать PB с Index=0

Вот тебе пример с Лабелом:
Сначала надо в design time создать массив этих контролов с одним элементом. Для этого надо нарисовать на форме элемент, назвать его, например t4xLabels, и
в свойство Index записать 0. Далее, настроить свойства этого элемента так, как почти будут выглядеть элементы, которые требуется загружать динамически.
После этого в окне кода в нужной подпрограмме написать следующее:
Load t4xLabels(1)
'Здесь задать положение и другие свойства новой метки.
t4xLabels(1).Visible = True 'По умолчанию загружаемый элемент не виден.
Выгрузить можно только так загруженные элементы. Делается это следующим образом:
Unload t4xLabels(1)
Понятно, что можно загрузить не один (как в этом примере) а много элементов.

Ответить

Номер ответа: 5
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #5 Добавлено: 13.01.06 19:10
о, GSerg, че перебрался на VBNet ( и че случилось с bbs.vbstreets.ru не знаешь?)

А с ним чё-то случилось? Не знал, не знал...

GSerg какой смысл в этом ? зачем создавать PB с Index=0. Мне могут понадобиться много PB, но мне нужно чтобы они были в массиве.

Ответил бы, да почитай ответ № 4...

Ответить

Номер ответа: 6
Автор ответа:
 VERiTAS



Вопросов: 5
Ответов: 6
 Профиль | | #6 Добавлено: 13.01.06 20:43
Ага, вот она где собака зарыта :) Все ясно с этим делом. Спасибо огромное за сие пояснение 2-х моих ламерских вопросов.

GSerg Возможно глюки с bbs.vbstreets.ru только у меня, хотя очень странно... ;D

Ну предугадывать я не умею, а теперь посмотрел и все понятно. Еще раз всем спасибо(этого слова стало так нехватать в нашем угнетающем мире). :(

Ответить

Номер ответа: 7
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #7
Добавлено: 13.01.06 22:28
Ну пожалуйста!
Хотя кому ты это было не понятно...

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 16.01.06 10:59
Создать массив в самом деле нельзя, но, если не нужны события - его можно задекларировать и затем изменять. К примеру

Option Explicit
Option Base 1
Dim PB() As PictureBox

Private Sub Form_Load()
ReDim PB(2)
Set PB(1) = Me.Controls.Add("VB.PictureBox", "Pict1";)
PB(1).Move 0, 0, 800, 400
PB(1).Visible = True
Set PB(2) = Me.Controls.Add("VB.PictureBox", "Pict2";)
PB(2).Move 1000, 500, 800, 400
PB(2).Visible = True
End Sub

Ответить

Страница: 1 |

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



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