множение TextBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

множение TextBox

Сообщение Технократ » 08.03.2007 (Чт) 14:22

Стоит такая задача: необходимо создать заранее неизвестное количество полей, т.е. я ввожу например "Кол-во ППМ = 7" и в форме создается семь полей для ввода данных!
Примного благодарен!

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 08.03.2007 (Чт) 14:59

поподробнеебыа? :shock:

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 08.03.2007 (Чт) 15:21

:? Нужен код который сгенерит мне необходимое (берется из переменной) количество текстовых полей в форме для ввода данных (примерно так) кудаужподробнее)

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

Сообщение Хакер » 08.03.2007 (Чт) 15:35

Controls.Add
или
Load TextBoxArray(нужный индекс)
или
CreateWindow
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 08.03.2007 (Чт) 15:38

Private Sub Form_Load()
Dim x As Integer
Dim txtkolvo As Integer ' твоя переменная ...
txtkolvo = 10 - 1 ' TODO ....
For x = 1 To txtkolvo
Load Text1(x)
Text1(x).Left = Text1(x - 1).Left + Text1(x - 1).Width + 1
Text1(x).Visible = True
Next
End Sub

'можетподумаемосеточкеgrid
P.S. на форме уже должен лежать TEXT1 со свойством Index - 0

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

Сообщение Хакер » 08.03.2007 (Чт) 15:43

txtkolvo

Вот за такое руки то надо вырывать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 08.03.2007 (Чт) 15:46

Кол-во ППМ

какой вопрос - такой ответ.

А 32 бита - это норма?

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

Сообщение Хакер » 08.03.2007 (Чт) 15:50

EUGY писал(а):
Кол-во ППМ

какой вопрос - такой ответ.

А 32 бита - это норма?


А причём тут "Кол-во ППМ". И уж тем более причём тут 32 бита?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 08.03.2007 (Чт) 15:52

А чегож можноиосеточке)

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 08.03.2007 (Чт) 15:54

Я вот тоже не уловил, за что здесь "руки варывать".

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

Сообщение Хакер » 08.03.2007 (Чт) 15:56

за стиль именования переменных вырывать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 08.03.2007 (Чт) 15:56

да ладно вам, не о том реч, не тратьте попусту время)

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 08.03.2007 (Чт) 16:00

Мне еще так же нужно генерить переменные к каждому полю)
А вы тут о стилях..

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 08.03.2007 (Чт) 16:06

Да и вниз бы это все смещать хорошо бы, а не по строке)
(с меня магарыч :) )

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 08.03.2007 (Чт) 16:11

нужно генерить переменные

Все-таки без подробностей не обойтись, кол-во "полей" может превысить разумный предел, какой смысл плодить TextBox' ы на форме, когда на вывод данных способна любая сетка.

Касаемо стиля:
Не предполагал Вашего участия, уважаемый "Хакер", в обсуждении банального примера и позволил себе некоторые вольности, впредь постараюсь быть "политкорректнее".

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 08.03.2007 (Чт) 16:15

EUGY писал(а):
нужно генерить переменные

Все-таки без подробностей не обойтись, кол-во "полей" может превысить разумный предел, какой смысл плодить TextBox' ы на форме, когда на вывод данных способна любая сетка.

Касаемо стиля:
Не предполагал Вашего участия, уважаемый "Хакер", в обсуждении банального примера и позволил себе некоторые вольности, впредь постараюсь быть "политкорректнее".


Нет, конечно же их небудет скажем 500, думаю не более 15 (скажу руководству больше нельзя))

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 08.03.2007 (Чт) 16:16

Код: Выделить всё
Private Sub Command1_Click()

  Dim i As Integer         ' i - счетчик
  Dim Col As Integer     'количество TextBox'ов

  Col = 10 - 1 ' нумеруем с 0
  For i = 1 To Col
    Load txtText(i)
    txtText(i).Top = txtText(i - 1).Top + txtText(i - 1).Height + 1
    txtText(i).Visible = True
  Next i
End Sub

Мог бы и сам дописать..
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

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

Сообщение Хакер » 08.03.2007 (Чт) 16:19

EUGY
А ты пишешь правильный код только на случай, что уважаемый "Хакер" его увидит и станет критиковать, а не потому что нужно писать правильный код?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 08.03.2007 (Чт) 16:22

Кстати, есть функция CreateObject(class). Вот не знаю какому классу принадлежат TextBox, CommandButton и т. п.

Это вобще можно определить как-то или надо просто знать?
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 08.03.2007 (Чт) 16:24

Нужно вот что:

Имя ППМ S, км Z, км РСБН ОПРС АРП ОРЛ
Text Text Text ChkBox ChkBox ChkBox ChkBox
Text Text Text ChkBox ChkBox ChkBox ChkBox
..... ...... ...... ............ ........... ............ ..........
Text Text Text ChkBox ChkBox ChkBox ChkBox

количество этих строк берется из переменной (ограничу 15)

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

Сообщение Хакер » 08.03.2007 (Чт) 16:28

burik
А вы знаете что есть функция Me.Controls.Add которая служит для создания визуальных объектов.

А вбшный-текст-бокс принадлежит классу VB.TextBox... Это если говорить о классе объекта формы. Если имеется ввиду окно, то там другой класс. Насколько я помню - ThunderRT6TextBox


Технократ
Имя ППМ S, км Z, км РСБН ОПРС АРП ОРЛ
Text Text Text ChkBox ChkBox ChkBox ChkBox
Text Text Text ChkBox ChkBox ChkBox ChkBox
..... ...... ...... ............ ........... ............ ..........
Text Text Text ChkBox ChkBox ChkBox ChkBox


Юзай GRID. Любой. Например MSFlexGrid.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 08.03.2007 (Чт) 16:31

Сделай ActiveX контрол с полями, а потом создавать нужное количество таких контролов (так же как выше создавали TextBox'ы).

Хотя удобней использоать MSFlexGrid или MSHFlexGrid
Последний раз редактировалось burik 08.03.2007 (Чт) 16:34, всего редактировалось 1 раз.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 08.03.2007 (Чт) 16:33

...станет критиковать, а не потому что нужно писать правильный код

"правильно", в данном контексте, то, что выполняет свою задачу.
Менее всего я озабочен критикой с Вашей стороны "уважаемый Хакер".

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

Сообщение Хакер » 08.03.2007 (Чт) 17:21

ты бы прогулялся до RSDN. Хотя бы до этого:

статья писал(а):Код должен быть легко читаем. Стив МакКоннелл (Steve McConnell) сказал в своём выступлении на SD West '04: код должен удобно читаться, а не удобно писаться.

Здесь следует отметить несколько факторов.
Выбор хороших, говорящих сами за себя, имён – хорошее начало. Стремитесь к простым решениям, даже если они кажутся более многословными или неэффективными. Является ли эффективность проблемой, станет известно только впоследствии, при профилировании проекта в реальной ситуации использования продукта
Выбирайте стиль и соглашения о форматировании на ранней стадии проекта, и следуйте этим соглашениям..
Требуйте от других следования им же. Это будет легче сделать, если каждый внесёт свою лепту в такое соглашение. Всё это сделает ваш код единообразным и более лёгким в прочтении.

И избавляйтесь от дублирования кода во всех его проявлениях. Более подробно об этом – ниже.

Ваш код – отстой, если он непонятен
Этот пункт весьма близок к предыдущему. Код может быть читабельным, но, тем не менее, труднопонимаемым. Возможно, он читается хорошо, но вводит читающего в заблуждение. Представьте: вы потратили много времени, чтобы выбрать хорошее имя переменной, но способ её использования и её значение изменились в то время, как имя осталось прежним. Это ещё хуже, чем зашифрованное имя... по крайней мере, в последнем случае, читатель знал бы, что имя бессмысленно. Но если же имя не отражает сути, читатель будет иметь беспочвенные суждения о том, что происходит в коде, что в итоге приведёт к непониманию, и в конце концов – к багам.

—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 09.03.2007 (Пт) 15:16

Приплыл к тому что нужно множить так же переменные, т.е. я создаю массив данных "Punkt" стринговых (для Имя ППМ), далее пытаюсь забить в массив значения из текст боксов

For i = 0 To InitData(KolPPM)
Punkt(i) = PPM(i)
Next

А он мне вот что: "Нижний индекс вне диапазона" Ошибка 9
предполагаю что в английской версии это как Out of range

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

Сообщение Andrey Fedorov » 09.03.2007 (Пт) 17:48

Взять Grid... И полей будет...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

Сообщение Viper » 10.03.2007 (Сб) 7:01

Массив то как объявлен? Размер ему задан?
Весь мир матрица, а мы в нем потоки байтов!

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 10.03.2007 (Сб) 18:00

размер не задан

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

Сообщение Viper » 12.03.2007 (Пн) 7:59

Так задай
Код: Выделить всё
ReDim Punkt(0 To NeedSize - 1)
Весь мир матрица, а мы в нем потоки байтов!

Технократ
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 08.03.2007 (Чт) 14:16

Сообщение Технократ » 13.03.2007 (Вт) 18:39

Мне размер заранее не известен

След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 93

    TopList