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


Автор: GoblinOdnorukiy 22.9.2009, 05:28
Как динамически (т.е. в ходе выполнения программы) создавать N-ое количество элементов WebBrowser в Форме, например при нажатии на какую-нибудь кнопку Command1 ???

Подчеркиваю, что статически (т.е. предварительно перед компиляцией) я и сам могу ручками натыкать N-ое кол-во компонентов WebBrowser. А я хочу чтобы они сами создавались кликая мышкой по кнопочке в ходе выполнения программы.


Автор: Akina 22.9.2009, 07:45
Ну что-то типа
Код

Dim wbr() as WebBrowser
'...
Redim preserve wbr(0 to UBound(wbr)+1) 
Set wbr(UBound(wbr)) = New WebBrowser
With wbr(UBound(wbr))
  .Top=...
  .Left=...
'...
End With

Хотя лучше, конечно, использовать коллекцию, а не массив.
А можно и напрямую добавлять в коллекцию Form.Controls.

Автор: GoblinOdnorukiy 22.9.2009, 19:11
Akina, не получается :(

Вот твой код... Я немножечко изменил уже под себя:
Код

Dim wbr() As WebBrowser
'...
ReDim Preserve wbr(0 To UBound(wbr) + 1)
maxEl = UBound(wbr)
Set wbr(maxEl) = New WebBrowser
With wbr(maxEl)
  .Top = 120
  .Left = 7800
'...
End With


При компиляции пишет ошибку:
Код

Compile error:
  Invalid use of New keyword



Я пытался вместо "WebBrowser" вставлять: "Form1.WebBrowser", "Form1.WebBrowser1", "WebBrowser1".  Ничего не помогло.

Заколдованый!

Где тут грабли?

Автор: GoblinOdnorukiy 22.9.2009, 19:53
Ура! Зашибись! Акина, спасибо, толкнул на мысль...

И так работающий код выношу в студию:

Код

Private Sub Command7_Click()
'proba

    Dim Okno1 As SHDocVwCtl.WebBrowser
    
    'With Me.Controls.Add("SHDocVwCtl.WebBrowser", "Okno1")
    With Me.Controls.Add("Shell.Explorer.2", "Okno1")
        .Top = 3480
        .Left = 120
        .Height = 4455
        .Width = 10095
        .Visible = True
    End With
    Form1.Controls("Okno1").Navigate "http://192.168.0.1"
    
End Sub



Не знаю как будет дальше работать этот код, но пока вебстраничка указанная в строке
Код

Form1.Controls("Okno1").Navigate "http://192.168.0.1"

грузится успешно.

Внимание! в коде есть закоментареная строчка
Код

   'With Me.Controls.Add("SHDocVwCtl.WebBrowser", "Okno1")


Я ее специально оставил. Она меня привела к строчке, которая находится сразу под ней.
(Может кому-то будет полезно.)


Этот вопрос закрыт.

Добавлено через 3 минуты и 34 секунды
Вопрос закрыт.

Добавлено через 10 минут и 57 секунд
Небольшое дополнение...

Обязательно на форму бросьте визуальный компонент WebBrowser и присвойте ему свойство

Form1.WebBrowser1.Visible = False

Без этой хрени не будет работать "Shell.Explorer.2" .

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