Как из кода создать кнопку?

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

Как из кода создать кнопку?

Сообщение MVG » 13.04.2005 (Ср) 9:39

Как из кода создать на форме кнопку со своими Caption и Name? Создание заранее и появление её по свойству Visible не подходит так как их понадобится штук 80.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.04.2005 (Ср) 9:43

Код: Выделить всё
Private Sub Form_Load()
Dim i As Integer

For i = 1 To 5
    Load cmdButton(i)
    With cmdButton(i)
        .Caption = "cmdbutton(" & i & ")"
        .Top = 500 * i
        .Visible = True
    End With
Next i
End Sub


На форме одна кнопка cmdButton. Index - 0.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.04.2005 (Ср) 9:45

Я фигею...
Люди, вы принципиально кнопку Поиск не видите?...
Эта тема поднималась вчера http://bbs.vbstreets.ru/viewtopic.php?t=15288
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.04.2005 (Ср) 9:48

Посему у меня предложение. Может, запретить Новичкам постить в форумы, пока у них не будет больше... скажем, больше 100 сообщений?

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 13.04.2005 (Ср) 9:51

Спасибо за помощь. Буду чаще пользоваться поиском.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.04.2005 (Ср) 9:53

Amed писал(а):Посему у меня предложение. Может, запретить Новичкам постить в форумы, пока у них не будет больше... скажем, больше 100 сообщений?

А как он тогда наберёт? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.04.2005 (Ср) 9:53

:roll:
Ты же понял шутку? :lol:

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 13.04.2005 (Ср) 15:18

Всё работает, кнопочка появляется. А как материализовать не стандартную кнопку, а кнопку одного из добавленных компонентов. Почему-то по показанным Вами кодам выходит ошибка.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.04.2005 (Ср) 17:38

Материализовать кнопку одного из добавленных компонентов? Поясните.

И какая ошибка выходит (номер, описание)?

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 14.04.2005 (Чт) 12:04

Есть компонент FarPiontButton. Пытаюсь создать из кода кнопку fpBtn по примерам:
Пример1:
- Me.Controls.Add("fpBtn", "newbutton").Visible = True
Выходит сообщение: "Неверная строка класса. Поиск объекта с ProgID:fpBtn"

Пример2:
-Dim WithEvents bt As fpBtn
Option Explicit

Private Sub Form_Load()
Set bt = Controls.Add("fpBtn", "newbutton")
bt.Caption = "MyNewButton"
'bt.Move 0, 0
bt.Visible = True
Выходит сообщение: "Неверная строка класса. Поиск объекта с ProgID:fpBtn"

Пример 3:

Private Sub Form_Load()

Dim i As Integer

For i = 1 To 5
Load fpBtn(i)
With fpBtn(i)
.Caption = "fpBtn(" & i & ")"
.Top = 500 * i
.Visible = True
End With
Next i
На форме присутствует кнопка fpBtn.

Сообщение: Ошибка компелляции:
Подпрограмма или Оператор-Функция не определены.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 14.04.2005 (Чт) 12:15

Пример 3:
А у кнопки fpBtn на форме свойство Index должно быть выставлено в "0".

Примеры 1 и 2:
Неверное имя класса для кнопки. Надо писать в Contols.Add не "fpBtn", а имя класса. Поищи в мануале.

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 14.04.2005 (Чт) 12:46

MVG писал(а):Как из кода создать кнопку?

:lol:
Простите за офф. Но этот вопрос мне ооочень напоминает фразу
"Из....(сами знаете чего :wink: ).... сделать конфетку" :lol:

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 14.04.2005 (Чт) 12:49

По примеру 3:
Поставил Index в «0». Не помогло.
Сообщение: «Ошибка времени выполнения 438. Объект не поддерживает это свойство или способ.»

Может этот компонент в принципе невозможно добавить из кода?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 14.04.2005 (Чт) 12:57

Вряд ли.
На какой строке ошибка?

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 14.04.2005 (Чт) 13:26

Private Sub Form_Load()

Dim i As Integer

For i = 1 To 5
Load fpBtn(i)
With fpBtn(i)
.Caption = "fpBtn(" & i & ")"
.Top = 500 * i
.Visible = True
End With
Next i

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 14.04.2005 (Чт) 13:43

У объекта fpBtn точно есть свойство Caption? Проверь ещё раз.

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 14.04.2005 (Чт) 13:53

Amed, большое спасибо за внимание и помощь. Cption-а у fpBtn таки нет, вместо него используется Text. Исправил - всё заработало.
Надо памятник поставить тем кто придумал форумы. Я купил килграммов 50 книг по VB (прочитал, конечно, не всё). Чтобы найти ответ на поставленный вопрос надо не один дель листать книги. А в форуме добрые люди подскажут и научат.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 14.04.2005 (Чт) 14:14

:wink:
Не за что, обращайтесь ещё.


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

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

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

    TopList