|
Вопрос # 2 247/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Как правильно записать условие на проверку урл в браузере?
Приложение: Переключить в обычный режим- function Get_URL(Servicio: string): String;
- var
- Cliente_DDE: TDDEClientConv;
- temp:PChar;
- begin
- Result := '';
- Cliente_DDE:= TDDEClientConv.Create( nil );
- with Cliente_DDE do
- begin
- SetLink( Servicio,'WWW_GetWindowInfo');
- temp := RequestData('0xFFFFFFFF');
- Result := StrPas(temp);
- StrDispose(temp);
- CloseLink;
- end;
- Cliente_DDE.Free;
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- if (Get_URL('IExplore') = 'https://expert.delphi-int.ru/') then
- showmessage(Get_URL('IExplore'))
- else showmessage ('Error!');
- end;
 |
Вопрос задал: scream (статус: Посетитель)
Вопрос отправлен: 29 декабря 2008, 16:10
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Nasgool
Здравствуйте, scream!
Вопрос и правда не корректно задан.
Но проверить URL в TWebBrowser можно например так:
Приложение: Переключить в обычный режим- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, OleCtrls, SHDocVw, StdCtrls, ExtCtrls;
-
- type
- TForm1 = class(TForm)
- Panel1: TPanel;
- Edit1: TEdit;
- Button1: TButton;
- WebBrowser1: TWebBrowser;
- procedure Button1Click(Sender: TObject);
- procedure WebBrowser1DocumentComplete(ASender: TObject;
- const pDisp: IDispatch; var URL: OleVariant);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- WebBrowser1.Navigate(Edit1.Text);
- end;
-
- procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
- const pDisp: IDispatch; var URL: OleVariant);
- begin
- Edit1.Text := WebBrowser1.LocationURL;
- if Edit1.Text = 'https://expert.delphi-int.ru/'
- then
- ShowMessage('True')
- else
- ShowMessage('False');
- end;
-
- end.
-
 |
Ответ отправил: Nasgool (статус: 2-ой класс)
Время отправки: 29 декабря 2008, 16:41
|
Мини-форум вопроса
Всего сообщений: 11; последнее сообщение — 9 сентября 2009, 20:11; участников в обсуждении: 3.
|
Вадим К (статус: Академик), 29 декабря 2008, 16:20 [#1]:
А что понимается под "проверкой урла"? Получить урл или проверить, что урл соотетствует какому то правилу, или он вообще валидный?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
scream (статус: Посетитель), 29 декабря 2008, 16:22 [#2]:
Мы получаем урл с браузера и если он соответствует нашему предопределённому, то мы выводим к примеру Ок, если же нет, то выводим Еррор.
Я пытаюсь это сделать так:
if (Get_URL('IExplore') = 'https://expert.delphi-int.ru/') then
showmessage(Get_URL('IExplore'))
else showmessage ('Error!');
Но получаю каждый раз Еrror! из-за того, что неправельно записано условие.
|
|
Вадим К (статус: Академик), 29 декабря 2008, 16:38 [#3]:
а попробуйте вывести то, с чем происходит сравнивание. может там лишний слеш...
Галочка "подтверждения прочтения" - вселенское зло.
|
|
scream (статус: Посетитель), 29 декабря 2008, 16:47 [#4]:
showmessage(Get_URL('IExplore')) выдаёт "https://expert.delphi-int.ru/",Opera-[Главная страница - Delphi.int.ru Expert]"
Если пишу:
if (Get_URL('IExplore') = '"https://expert.delphi-int.ru/",Opera-[Главная страница - Delphi.int.ru Expert]"') then
showmessage(Get_URL('IExplore'))
else showmessage ('Error!');
то всё-равно получаю Error!
|
|
Вадим К (статус: Академик), 29 декабря 2008, 16:53 [#5]:
стоп стоп стоп. Опера или веб броузер???
может через pos(что искать, где искать) проверять? Эта функция проверит вхождение одной строки в другую и выдаст номер символа, с которого начинается входжение или 0.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Пупкин В.В. (статус: 1-ый класс), 29 декабря 2008, 17:03 [#6]:
надо было срузу на функию Get_URL обратить внимание и не морочить голову
|
|
Пупкин В.В. (статус: 1-ый класс), 29 декабря 2008, 17:23 [#7]:
из msdn
GetWindowInfo
Returns URL and WindowText currently being displayed in the browser window:
returnValue: URL,WindowText
|
|
scream (статус: Посетитель), 29 декабря 2008, 17:27 [#8]:
Пишу:
position := AnsiPos('https://expert.delphi-int.ru/', Get_URL('IExplore'));
if position = 0
then ShowMessage('Error')
else ShowMessage(Get_URL('IExplore'));
И всё-равно получаю ошибку
|
|
Вадим К (статус: Академик), 29 декабря 2008, 17:38 [#10]:
А почему AnsiPos? Если Делфи 2009 - получите проблемы.
Но в целом непонятно. Хотя странный код - зачем выводить содержимое урла, если и так совпадает. Я бы выводил, если ошибка. Ну например так написал бы.
s := Get_URL('IExplore');
if Pos('expert.delphi.int.ru', s) = 0 then
ShowMessage('Error: ' + s)
else
ShowMessage('Ok');
Галочка "подтверждения прочтения" - вселенское зло.
|
|
scream (статус: Посетитель), 9 сентября 2009, 20:11 [#11]:
Ещё вопрос:
Get_URL('IExplore') возвращает к примеру: "https://expert.delphi-int.ru/",Opera-[Главная страница - Delphi.int.ru Expert]"
Как получить только expert.delphi.int.ru??
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|