Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Как создать объект во время выполнения Добавлено: 06.06.06 18:43  

Автор вопроса:  Nj | ICQ: 223663115 
Я не пойму, как создать объект(хз, может контрол или класс) типа FileListBox или PictureBox во время выполнения - в проекте нет форм, только модуль.
Dim L as PictureBox
L.Pset(x,y) - ругается, что не выбран with-block или объектная переменная...
Попробывал еще всякие Set, As Object, As Control, Load L... и прочую фигню - не выходит. Выручайте!

Ответить

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

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 07.06.06 04:20
а CrateObject не пробовал?

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #2 Добавлено: 07.06.06 11:14
В смысле, CreateObject? Объект типа ящик, думается, ему ни к чему...

Ответить

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



Вопросов: 60
Ответов: 808
 Профиль | | #3 Добавлено: 07.06.06 12:23
Dim a As Object
Set a = CreateObject("VB.PictureBox";)

429 ActiveX component can't create object

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 07.06.06 13:47
VBшные контролы никогда не были полноценными COM объектами, это вся хрень из виртуальной машины. Используй MS Forms:
Set a = CreateObject("Forms.TextBox.1";)

Ответить

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



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #5
Добавлено: 07.06.06 14:55
А как насчет вообще ничего не создавать? Может есть другие способы решения проблемы? Интересуюсь, как ставится проблема в более широком смысле?

Ответить

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



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #6 Добавлено: 08.06.06 22:26
2 LamerOnLine - Большое Спасибо!
а также спасибо всем остальным, кто подумал над этой темой. Кстати, такой вопрос, из области торетических знаний: Это позднее связывание или раннее?

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #7 Добавлено: 09.06.06 11:18
Ну, если ты объявляешь объектную переменную как Object - уже позднее в принципе. Если подключишь библу в References и объявишь типизировано - будет раннее :)

Ответить

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



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #8 Добавлено: 11.06.06 00:06
Ок. Спасибо. Жаль - позднее говорят медленне...

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 11.06.06 23:44
Вообще обычно чисто от винта, компонент редко создать надо... Если надо, так это обычно массив компонентов одного типа...

например при отображении картинок, можеть потребоваться массив Image, так вот этот image можно изначально создать массивом (кинуть на форму image и в св-во задать ему Index=0) затем когда надо подгрузить ещё один image, для отображение очередной картинки, то просто "загрузить" ещё один эл. массива (имеджа), типа...

Load Image1 (Image1.Count+1)

затем задать ему нужные свойства...
Image1 (Image1.Count-1).Left, Top, Visible итп...

Ответить

Номер ответа: 10
Автор ответа:
 Nj



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #10 Добавлено: 12.06.06 15:15
2 HACKER Спсаибо, но проблема в том, что мне нужны функциональные возможности контрола в модуле...

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 12.06.06 19:06
Ну и дык когда элемент массива контрола создан, обратится к нему можно откуда угодно, и с модуля в том числе...

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #12 Добавлено: 13.06.06 10:23
Хак, читаем вопрос:

в проекте нет форм, только модуль.

Ответить

Номер ответа: 13
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #13 Добавлено: 13.06.06 20:47
а да ой :)

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #14 Добавлено: 14.06.06 11:25
Ага, вот и ой :) Была бы форма - добавлять VBшные контролы проще чем блины лопать - Controls.Add...
Возможно даже это более рациональный метод - раскошелиться на форму, ибо VB - не тот язык где имеет смысл считать лишние килобайты :)

Жаль - позднее говорят медленне...

МТС - люди говорят :) Шутка.
Опять же, эти потери IDispath крайне редко дают себя знать в VB, ибо там тормозов и без того хватает. Не будешь использовать этот объект в Time Critical цикле - разницы не заметишь ;)

Ответить

Страница: 1 |

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



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