Что нового

Не могу во вкладку вставить Object

Godygadu

Новичок
Сообщения
47
Репутация
0
Ни как не получается вставить объект IE во вкладку. Так, чтобы в разных вкладках открывались разные сайты. Есть подсказки? Спасибо.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Можно так :
Код:
#include <GUIConstantsEx.au3>
#include <IE.au3>

Global $a_URL[2]=['http://www.autoitscript.com', 'http://autoit-script.ru']
$hGUI = GUICreate("", 500, 500)

$hTab = GUICtrlCreateTab(10, 10, 480, 20)

For $i = 0 To 1
	GUICtrlCreateTabItem($a_URL[$i])
Next
GUICtrlCreateTabItem("")

$oIE = _IECreateEmbedded()
$h_IE=GUICtrlCreateObj($oIE, 10, 30, 480, 460)	
_IENavigate($oIE, '')	
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $hTab
			$iCurrTab = GUICtrlRead($hTab)
			_IENavigate($oIE, $a_URL[$iCurrTab], 0)	
	EndSwitch
WEnd



Добавлено:
Сообщение автоматически объединено:

Или без массива (что удобней при добавлении сайтов)
Код:
#include <GUIConstantsEx.au3>
#include <IE.au3>
#include <GuiTab.au3>

$hGUI = GUICreate("", 500, 500)

$hTab = GUICtrlCreateTab(10, 10, 480, 20)
GUICtrlCreateTabItem('http://www.autoitscript.com')
GUICtrlCreateTabItem("")
GUICtrlCreateTabItem('http://autoit-script.ru')
GUICtrlCreateTabItem("")	

$oIE = _IECreateEmbedded()
$h_IE=GUICtrlCreateObj($oIE, 10, 30, 480, 460)	
_IENavigate($oIE, '')	
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $hTab
			$iCurrTab = GUICtrlRead($hTab)
			$sTabItemText=_GUICtrlTab_GetItemText($hTab, $iCurrTab)	
			_IENavigate($oIE, $sTabItemText, 0)	
	EndSwitch
WEnd
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Спасибо, только не понятно, как работает. Вот я запустил скрипт, появилось окно и в объекте "страница не найдена". Не загрузилась сразу. Вот я добавил еще 2 вкладки с адресами и страницы вообще не загружаются. :scratch:
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Godygadu [?]
Спасибо, только не понятно, как работает

После нажатия на вкладку следует дождаться начала загрузки страницы

Вообще-то корректнее заменить пустую страницу страницей 1-й вкладки

Код:
;_IENavigate($oIE, '') 
GUISetState()
_IENavigate($oIE, 'http://www.autoitscript.com')

поскольку она нажата и сделать это после создания окна


Добавлено:
Сообщение автоматически объединено:

Покажи неработающий пример
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Сделал, как ты сказал - помогло. Еще вопрос. А можно сделать так, что бы на вкладке отображалась та надпись, что я напишу, а не адрес?
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Godygadu [?]
А можно сделать так, что бы на вкладке отображалась та надпись, что я напишу, а не адрес

Можно. Используй мой 1-й пример с массивом. Там надпись на вкладке не зависит от имени сайта.

Можно сделать например:
Код:
Global $a_URL[2]=['http://www.autoitscript.com', 'http://autoit-script.ru']
;......................
Dim $a[2]=['aaa', 'bbb']
For $i = 0 To 1
    GUICtrlCreateTabItem($a[$i])
Next
;............................
 Case $hTab
            $iCurrTab = GUICtrlRead($hTab)
            _IENavigate($oIE, $a_URL[$iCurrTab], 0)

а открываться будут все те же сайты массива URL
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Не. Второй пример мне больше нравится своей понятностью и универсальностью. Мне в табы еще кучу элементов кидать надо. Во втором это аккуратнее выглядит :ok:
Подумаю еще. А если не придумаю, то и так сойдет :whistle:


Добавлено:
Сообщение автоматически объединено:

Вот так я сделал :laugh:

Код:
Global $var1, $var2
;----------------------------------

$Google = GUICtrlCreateTabItem("Google")
$Yandex = GUICtrlCreateTabItem("Yandex")

;-----------------------------------
Case $hTab
            $iCurrTab = GUICtrlRead($hTab)
           If $var1 = StringRegExp ( $iCurrTab, "Google") Then _IENavigate($oIE, "http:\\google.com", 0)
           If $var2 = StringRegExp ( $iCurrTab, "Yandex") Then _IENavigate($oIE, "http:\\ya.ru", 0)
;------------------------------------


Так корректно? :-\


Добавлено:
Сообщение автоматически объединено:

Как-то коряво работает :stars:
 
Верх