| 
| 
 | Вопрос # 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);beginif (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??
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |