Как заставить работать компонент WebBrovser

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

Как заставить работать компонент WebBrovser

Сообщение denver » 01.07.2003 (Вт) 10:10

У компонента WebBrowser есть метод
Navigate(URL As String, [Flags], [TargetFrameName], [PostData], [Headers]).
Так вот, когда ему задаёш только параметр URL, всё нормально - открывается страница, всё класно. Но когда пытаешся задать ещё и другие пораметры ([Flags], [TargetFrameName], [PostData], [Headers]), тогда выскакивает ошибка "Compile error: Expected: =". Так вот, что это за "=" и куда его ставить ???? Помогите, может кто знает ???

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 01.07.2003 (Вт) 12:44

вот что нам пишут в MSDN
Код: Выделить всё
Navigate Method

--------------------------------------------------------------------------------

Description

Navigates to the resource identified by a Universal Resource Locator (URL) or to the file identified by a full path.

Syntax
object.Navigate URL [Flags,] [TargetFrameName,] [PostData,] [Headers]

Description
object               Required. An object expression that evaluates to an object in the Applies To list.

URL                  Required. A string expression that evaluates to the URL, full path, or Universal Naming Convention (UNC) location and name of the resource to display. 

Flags                Optional. A constant or value that specifies whether to add the resource to the history list, whether to read from or write to the cache, and whether to display the resource in a new window. It can be a combination of the following constants or values. Constant Value Meaning 
                               navOpenInNewWindow 1 Open the resource or file in a new window.
                               navNoHistory 2 Do not add the resource or file to the history list. The new page replaces the current page in the list.
                               navNoReadFromCache 4 Do not read from the disk cache for this navigation.
                               navNoWriteToCache 8 Do not write the results of this navigation to the disk cache.

TargetFrameName      Optional. String expression that evaluates to the name of an HTML frame in URL to display in the browser window. The possible values for this parameter are: _blank  Load the link into a new unnamed window.
                               _parent  Load the link into the immediate parent of the document the link is in.
                               _self    Load the link into the same window the link was clicked in.
                               _top     Load the link into the full body of the current window.
                               <window_name>  A named HTML frame. If no frame or window exists that matches the specified target name, a new window is opened for the specified link. 

PostData             Optional. Data to send to the server during the HTTP POST transaction. For example, the POST transaction is used to send data gathered by an HTML form to a program or script. If this parameter does not specify any post data, the Navigate method issues an HTTP GET transaction. This parameter is ignored if URL is not an HTTP URL. 

Headers              Optional. A value that specifies additional HTTP headers to send to the server. These headers are added to the default Internet Explorer headers. The headers can specify things like the action required of the server, the type of data being passed to the server, or a status code. This parameter is ignored if URL is not an HTTP URL. 

Remarks

The WebBrowser control or InternetExplorer object can browse to any location in the local file system, on the network, or on the World Wide Web. Use the Navigate method to tell the browser which location to browse to. By including a text box in your application, you can let the user specify the location to browse to and then pass the location to the Navigate method
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Re: Как заставить работать компонент WebBrovser

Сообщение skiperski » 01.07.2003 (Вт) 13:06

denver писал(а):выскакивает ошибка "Compile error: Expected: =". Так вот, что это за "=" и куда его ставить ???? Помогите, может кто знает ???

Во-первых, требуется не "=", а ":=".

Попробую угадать как ты пишешь. Скорее всего Option Explicit не установлена. Имя переменной совпадает с именем параметра. Т.о. компилятор думает, что в вызове метода перечисляют опциональные параметры и требует указать к ним значения.

Т.е. у тебя выглядит примерно так
Код: Выделить всё
Call Navigate(URL, Flags, TargetFrameName, PostData, Headers)


Если переменные не объявлены явно, то получишь сообщение об ошибке.

Варианты решения:
1. Последовать совету компилятора и явно указать значеня параметров и избавиться от этой проблемы на сегодня
Код: Выделить всё
Call Navigate(URL, Flags:=Flags, TargetFrameName:=TargetFrameName, PostData:=PostData, Headers:=Headers)


2. Приучить себя чисто программировать чтобы избавиться от этой проблемы навсегда.
2.1. Всегда вкючать Option Explicit
2.2. Как следствие п.2.1., всегда описывать переменные.

denver
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 27.06.2003 (Пт) 23:03

Re: Как заставить работать компонент WebBrovser

Сообщение denver » 01.07.2003 (Вт) 17:11

skiperski писал(а):
denver писал(а):выскакивает ошибка "Compile error: Expected: =". Так вот, что это за "=" и куда его ставить ???? Помогите, может кто знает ???

Во-первых, требуется не "=", а ":=".

Попробую угадать как ты пишешь. Скорее всего Option Explicit не установлена. Имя переменной совпадает с именем параметра. Т.о. компилятор думает, что в вызове метода перечисляют опциональные параметры и требует указать к ним значения.

Т.е. у тебя выглядит примерно так
Код: Выделить всё
Call Navigate(URL, Flags, TargetFrameName, PostData, Headers)


Если переменные не объявлены явно, то получишь сообщение об ошибке.

Варианты решения:
1. Последовать совету компилятора и явно указать значеня параметров и избавиться от этой проблемы на сегодня
Код: Выделить всё
Call Navigate(URL, Flags:=Flags, TargetFrameName:=TargetFrameName, PostData:=PostData, Headers:=Headers)


2. Приучить себя чисто программировать чтобы избавиться от этой проблемы навсегда.
2.1. Всегда вкючать Option Explicit
2.2. Как следствие п.2.1., всегда описывать переменные.


Skiperski: спасибо конечно за напутствие по поводу кода, но дело не в этом. Даже если указывать все значения не используя переменные (явно), всё равно выскакивает эта ошибка. И даже если просто указать дополнительно только значение [Flag] - происходит тоже самое. Вот строчка кода:
Код: Выделить всё
Explorer.Navigate ("http://www.microsoft.com", 1)

Так что же это ?

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 01.07.2003 (Вт) 17:41

АААААААААААААААААААА!!!!!!!!!!!!!!!!!!!!!!!!!!!
Держите меня трое!!!

Ну и чего же ты хочешь? Примитивная синтаксическая ошибилка.

Не правильно:
Код: Выделить всё
Explorer.Navigate ("http://www.microsoft.com", 1)


Правильно:
Код: Выделить всё
Call Explorer.Navigate("http://www.microsoft.com", 1)


или
Код: Выделить всё
Explorer.Navigate "http://www.microsoft.com", 1

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 01.07.2003 (Вт) 18:01

Скобки ставятся когда функция должна возвращать значения или там Call. А кода она значения не возвращает и один параметр, то она считает, что в скобках этот параметр

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 01.07.2003 (Вт) 18:43

GoGosha писал(а):Скобки ставятся когда функция должна возвращать значения или там Call.

Это правильно

GoGosha писал(а):А кода она значения не возвращает и один параметр, то она считает, что в скобках этот параметр

А тут природа понимания компилятором скобок несколько иная. Т.к. в VB исторически сложилось, что вызов процедуры/функции без возврата значения оформляется без скобок, то имеющиеся скобки компилятор воспринимает как скобки расстановки приоритетов и всё выражение в скобках как единое значение. Как в мат. выражениях.

Т.о. бессмысленнен, но корректен такой вызов:
Код: Выделить всё
IIf (True), ((4)), 5


, и так же бессмысленен, но при этом ещё и некорректен следующий
Код: Выделить всё
IIf (True, 4, 5)

, т.к. оператор "," не определен

denver
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 27.06.2003 (Пт) 23:03

Сообщение denver » 02.07.2003 (Ср) 17:58

ВСЁ, всем спасибо, заработало .... просто ненужно никаких скобок и никаких CALL. Просто через запятую перечисляются все дополнительные параметры. Только вот загвоздка, открывается сразу два окна Експлорера, одно пустое и второе с нужной ссылкой, ну уж это как-нибудь переживём


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

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

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 18

    TopList