Динамическое добавление элементов управления

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Динамическое добавление элементов управления

Сообщение Diamock » 06.02.2010 (Сб) 9:46

Здравствуйте Уважаемые!
Вопрос в следующем:
Есть ли ограничение, на количество элементов управления, при их динамическом добавлении во время работы программы?
В частности интересуют ЭУ: Label и TextBox.
С уважением...
In der Beschrankung zeigt sich erst der Meister
Графоманю...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Динамическое добавление элементов управления

Сообщение Viper » 06.02.2010 (Сб) 10:09

Diamock писал(а):Здравствуйте Уважаемые!
Вопрос в следующем:
Есть ли ограничение, на количество элементов управления, при их динамическом добавлении во время работы программы?
В частности интересуют ЭУ: Label и TextBox.
С уважением...
Если возникает такой вопрос, то значит с архитектурой программы что-то не то. Что же касается ответа на вопрос, то обсуждалось сие неоднократно и Поиск должен помочь.
Весь мир матрица, а мы в нем потоки байтов!

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Динамическое добавление элементов управления

Сообщение Dmitriy2003 » 06.02.2010 (Сб) 10:17

А где - же энтузиазм :)
Код: Выделить всё
Private Sub Form_Load()
    '
    On Error GoTo Err_Form_Load
    '
    Dim counter As Long
    Dim ctrl As control
    '
    Me.Show
    DoEvents
    '
    While (True)
    '
        counter = counter + 1
        Set ctrl = Me.Controls.Add("VB.Label", "label" + CStr(counter))
        Me.Caption = "Controls count: " & CStr(counter)
        DoEvents
    '
    Wend
    '
    Exit Sub
    '
Err_Form_Load:
    MsgBox Err.Number + vbCrLf + Err.Description
    '
End Sub

Diamock
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 26.10.2009 (Пн) 4:19
Откуда: Кемерово

Re: Динамическое добавление элементов управления

Сообщение Diamock » 06.02.2010 (Сб) 10:18

Уважаемый Viper.
Если возникает такой вопрос, то значит с архитектурой программы что-то не то.

Поясните пожалуйста, что вы имели ввиду.
In der Beschrankung zeigt sich erst der Meister
Графоманю...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Динамическое добавление элементов управления

Сообщение Viper » 06.02.2010 (Сб) 10:20

Dmitriy2003 писал(а):А где - же энтузиазм :)
Так может проще в документацию глянуть? Там есть.
Имеется ввиду, что я плохо представляю себе программу в которой можно добраться до ограничения в количестве элементов.
Весь мир матрица, а мы в нем потоки байтов!

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Динамическое добавление элементов управления

Сообщение Dmitriy2003 » 06.02.2010 (Сб) 10:24

Viper писал(а):Так может проще в документацию глянуть? Там есть.

Мне, то за чем - я и так знаю - вот ТС - пусть и смотрит, а если ему в лом... чем я могу помочь :?:

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Динамическое добавление элементов управления

Сообщение MIT » 06.02.2010 (Сб) 10:31

Dmitriy2003 писал(а):Мне, то за чем - я и так знаю - вот ТС - пусть и смотрит, а если ему в лом...
Граммар наци негодуэ!
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Динамическое добавление элементов управления

Сообщение alibek » 06.02.2010 (Сб) 12:43

Dmitriy2003 писал(а):А где - же энтузиазм :)

Если ты попробуешь использовать этот подход для массива элементов, получишь совсем другие результаты.
Lasciate ogni speranza, voi ch'entrate.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Динамическое добавление элементов управления

Сообщение FFOX » 08.02.2010 (Пн) 16:03

Diamock писал(а):Здравствуйте Уважаемые!
Вопрос в следующем:
Есть ли ограничение, на количество элементов управления, при их динамическом добавлении во время работы программы?
В частности интересуют ЭУ: Label и TextBox.
С уважением...

Есть...
Дело в GDI
Их не может быть более 10000
Каждый контрол Label и TextBox жрет минимум 2 , а обычно 4-6
Проходили...

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Динамическое добавление элементов управления

Сообщение FFOX » 08.02.2010 (Пн) 16:12

Viper писал(а):
Dmitriy2003 писал(а):А где - же энтузиазм :)
Так может проще в документацию глянуть? Там есть.
Имеется ввиду, что я плохо представляю себе программу в которой можно добраться до ограничения в количестве элементов.

Да нет проблем, можно достичь, и не обязательно с плохой архитектурой, и с хорошей можно :)
допустим надо отобразить n-мерный куб (OLAP) по всем координатам и по всем парам координат
понятно, что с точки зрения разработчика это бред :)
но если такие требования? Заказчику умнее, как надо сделать :)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Динамическое добавление элементов управления

Сообщение Andrey Fedorov » 09.02.2010 (Вт) 14:33

FFOX писал(а):
Viper писал(а):Имеется ввиду, что я плохо представляю себе программу в которой можно добраться до ограничения в количестве элементов.

Да нет проблем, можно достичь, и не обязательно с плохой архитектурой, и с хорошей можно :)
допустим надо отобразить n-мерный куб (OLAP) по всем координатам и по всем парам координат
понятно, что с точки зрения разработчика это бред :)
но если такие требования? Заказчику умнее, как надо сделать :)


Можно еще попытаться изобразить Grid пользуясь Label и TextBox...

Какие проблемы сделать свой UserControl и просто нарисовать нужный вам элемент управления? Как обычно и делают Grid-ы При этом на форме будет всего 1 контрол!!!
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Динамическое добавление элементов управления

Сообщение FFOX » 09.02.2010 (Вт) 15:04

Andrey Fedorov писал(а):
Можно еще попытаться изобразить Grid пользуясь Label и TextBox...

Какие проблемы сделать свой UserControl и просто нарисовать нужный вам элемент управления? Как обычно и делают Grid-ы При этом на форме будет всего 1 контрол!!!

А если форм будет ну... скажем 1000
а компилятор Бейсика дурной, он пытается создать ВСЕ контролы которые лежат на форме и так каждую форму...
и... вылетаем с ошибкой при компиляции, когда достигаем ограничения по GDI
Поверьте, можно сделать такой режим, легко.
Кроме Грида же еще надо и конкретную запись отобразить, в текст\Комбо боксах плюс каждое поле подписать(лейба)
и если хотите посмотреть данные допустим по продажам за год с шагом 1 день(товары в строках грида)
уже имеем 365 текст боксов + 365 лабелек
а тут же еще и цену надо на каждый день для каждого товара посмотреть...
и суммы продаж, и прибыль
И.т.д.
Идиотизм?
с точки зрения программиста таки да, с точки зрения заказчика "Мне так надо!".
А заказчик всегда прав обычно.
Вот и начинаются пляски с бубном :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Динамическое добавление элементов управления

Сообщение Хакер » 09.02.2010 (Вт) 15:14

FFOX, поработай над стилем. И больше не пиши в таком стиле.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Динамическое добавление элементов управления

Сообщение Денис » 09.02.2010 (Вт) 15:16

FFOX писал(а):Вот и начинаются пляски с бубном :)


Как так? Вместо использования грида вы устраиваете пляски с бубном и массивами элементов управления? Ну и причем здесь заказчик?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Динамическое добавление элементов управления

Сообщение FFOX » 10.02.2010 (Ср) 11:35

Денис писал(а):Как так? Вместо использования грида вы устраиваете пляски с бубном и массивами элементов управления? Ну и причем здесь заказчик?

Грид используется.
Но кроме грида (списка) есть еще и детализация записи(карточка)
да ладно, я не буду переубеждать.
Тебе кажется, что это плохо?
Бога ради, дело твое.
ТС вообще то спрашивал есть ли ограничение
Я сказал Есть - 10000 объектов GDI
А вопрос зачем это надо не задавался.
А насчет плохой \ хорошей архитектуры
это вопрос больше философский, зависит от целей, которых мы хотим достичь
Идеальная архитектура для одной цели не факт, что будет являться таковой для другой.
А если у одного приложения целей много, значит нужно искать компромиссы.
То Хакер:
Все, я закончил отвечать в эту тему.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Динамическое добавление элементов управления

Сообщение alibek » 10.02.2010 (Ср) 11:49

FFOX писал(а):Но кроме грида (списка) есть еще и детализация записи(карточка)

В Adobe Photoshop или Corel Draw графических объектов в окне программы гораздо больше, чем 10000.
Но это не значит, что каждый графический объект является объектом GDI.
Lasciate ogni speranza, voi ch'entrate.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Динамическое добавление элементов управления

Сообщение iGrok » 10.02.2010 (Ср) 13:00

Великий ДЗЕН UI-программирования постичь смог он. Нам не понять.
label:
cli
jmp label

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Динамическое добавление элементов управления

Сообщение FFOX » 10.02.2010 (Ср) 13:12

alibek писал(а):
FFOX писал(а):Но кроме грида (списка) есть еще и детализация записи(карточка)

В Adobe Photoshop или Corel Draw графических объектов в окне программы гораздо больше, чем 10000.
Но это не значит, что каждый графический объект является объектом GDI.

Я говорю об ОБЪЕКТАХ GDI
И ограничении на их количество.
http://support.microsoft.com/default.aspx?scid=kb;en-us;838283

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Динамическое добавление элементов управления

Сообщение iGrok » 10.02.2010 (Ср) 13:25

FFOX писал(а):Я говорю об ОБЪЕКТАХ GDI

Да поняли уже все, о чём ты говоришь. И про ограничение все знают.
Это только ты понять никак не можешь, что НЕТ такой задачи, для которой понадобилось бы СТОЛЬКО объектов GDI.
А если она у тебя есть, значит ты либо не правильно её понимаешь, либо не правильно пытаешься реализовать. И точка.
label:
cli
jmp label

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Динамическое добавление элементов управления

Сообщение FFOX » 10.02.2010 (Ср) 15:25

[Хакер] :: Вырезано. Ты не поработал над стилем.

FFOX писал(а):То Хакер:
Все, я закончил отвечать в эту тему.

Врун.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 14

    TopList