Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > тип контролов и преобразование из строк


Автор: Wedi 11.5.2019, 15:35
привет друзья
хочется передать параметр в метод
но что за фрукт "имя контрола"
какой у него тип и как преобразовать
его из строчной формы?
Код

Private name As String
Private Sub initHead(ByVal n As String, ByVal wi As Long, ByVal h As Long)
 name = n ' передаём "Form1.headG"
 With name 'with object must be user-defined type object or variant
    .AutoRedraw = True
    .width = wi
...
...
End Sub
'и вызов
initHead "Form1.headG", 300, 50

Автор: Akina 11.5.2019, 18:39
Бред какой-то, право слово.

Автор: Wedi 11.5.2019, 20:40
Модератор: Сообщение скрыто.

Автор: Oldshelf 12.5.2019, 20:13
А контрол уже существует? Если да, то вот пример передачи control'а (типа PictureBox):

Код

Private Sub initHead(obj As PictureBox, ByVal wi As Long, ByVal h As Long)
    obj.AutoRedraw = True
    obj.Width = wi
End Sub

Public Sub Form_Load()
 initHead Form1.Picture1, 2500, 50
End Sub


Вроде, работает.

Добавлено через 14 минут и 46 секунд
Или если строкой:
Код

 initHead Form1.Controls("Picture1"), 2500, 50

Автор: Oldshelf 12.5.2019, 20:39
И с передачей любого контрола и определением его типа:
Код

Private Sub initHead(obj As Object, ByVal wi As Long, ByVal h As Long)
    MsgBox (TypeName(obj))
    obj.AutoRedraw = True
    obj.Width = wi
End Sub

Public Sub Form_Load()
 initHead Form1.Controls("Picture1"), 2500, 50
End Sub

Автор: Wedi 12.5.2019, 20:52
всем спасибо
информация принята

Автор: Akina 12.5.2019, 21:47
Цитата(Wedi @  11.5.2019,  21:40 Найти цитируемый пост)
в чём бред то

В попытке использовать переменную типа String в качестве базы блока With.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)