Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 247

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Как правильно записать условие на проверку урл в браузере?

Приложение:
  1. function Get_URL(Servicio: string): String;
  2. var
  3. Cliente_DDE: TDDEClientConv;
  4. temp:PChar;
  5. begin
  6. Result := '';
  7. Cliente_DDE:= TDDEClientConv.Create( nil );
  8. with Cliente_DDE do
  9. begin
  10. SetLink( Servicio,'WWW_GetWindowInfo');
  11. temp := RequestData('0xFFFFFFFF');
  12. Result := StrPas(temp);
  13. StrDispose(temp);
  14. CloseLink;
  15. end;
  16. Cliente_DDE.Free;
  17. end;
  18.  
  19. procedure TForm1.Button1Click(Sender: TObject);
  20. begin
  21. if (Get_URL('IExplore') = 'http://expert.delphi.int.ru/') then
  22. showmessage(Get_URL('IExplore'))
  23. else showmessage ('Error!');
  24. end;


scream Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: scream (статус: Посетитель)
Вопрос отправлен: 29 декабря 2008, 16:10
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Nasgool

Здравствуйте, scream!
Вопрос и правда не корректно задан.
Но проверить URL в TWebBrowser можно например так:

Приложение:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, OleCtrls, SHDocVw, StdCtrls, ExtCtrls;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. Panel1: TPanel;
  12. Edit1: TEdit;
  13. Button1: TButton;
  14. WebBrowser1: TWebBrowser;
  15. procedure Button1Click(Sender: TObject);
  16. procedure WebBrowser1DocumentComplete(ASender: TObject;
  17. const pDisp: IDispatch; var URL: OleVariant);
  18. private
  19. { Private declarations }
  20. public
  21. { Public declarations }
  22. end;
  23.  
  24. var
  25. Form1: TForm1;
  26.  
  27. implementation
  28.  
  29. {$R *.dfm}
  30.  
  31. procedure TForm1.Button1Click(Sender: TObject);
  32. begin
  33. WebBrowser1.Navigate(Edit1.Text);
  34. end;
  35.  
  36. procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  37. const pDisp: IDispatch; var URL: OleVariant);
  38. begin
  39. Edit1.Text := WebBrowser1.LocationURL;
  40. if Edit1.Text = 'http://expert.delphi.int.ru/'
  41. then
  42. ShowMessage('True')
  43. else
  44. ShowMessage('False');
  45. end;
  46.  
  47. end.
  48.  


Ответ отправил: Nasgool (статус: 2-ой класс)
Время отправки: 29 декабря 2008, 16:41


Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 9 сентября 2009, 20:11; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 29 декабря 2008, 16:20 [#1]:

А что понимается под "проверкой урла"? Получить урл или проверить, что урл соотетствует какому то правилу, или он вообще валидный?
Галочка "подтверждения прочтения" - вселенское зло.
scream

scream (статус: Посетитель), 29 декабря 2008, 16:22 [#2]:

Мы получаем урл с браузера и если он соответствует нашему предопределённому, то мы выводим к примеру Ок, если же нет, то выводим Еррор.
Я пытаюсь это сделать так:
if (Get_URL('IExplore') = 'http://expert.delphi.int.ru/') then
showmessage(Get_URL('IExplore'))
else showmessage ('Error!');
Но получаю каждый раз Еrror! из-за того, что неправельно записано условие.
Вадим К

Вадим К (статус: Академик), 29 декабря 2008, 16:38 [#3]:

а попробуйте вывести то, с чем происходит сравнивание. может там лишний слеш...
Галочка "подтверждения прочтения" - вселенское зло.
scream

scream (статус: Посетитель), 29 декабря 2008, 16:47 [#4]:

showmessage(Get_URL('IExplore')) выдаёт "http://expert.delphi.int.ru/",Opera-[Главная страница - Delphi.int.ru Expert]"
Если пишу:
if (Get_URL('IExplore') = '"http://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

scream (статус: Посетитель), 29 декабря 2008, 17:27 [#8]:

Пишу:
position := AnsiPos('http://expert.delphi.int.ru/', Get_URL('IExplore'));
if position = 0
then ShowMessage('Error')
else ShowMessage(Get_URL('IExplore'));
И всё-равно получаю ошибку
scream

scream (статус: Посетитель), 29 декабря 2008, 17:37 [#9]:

Поменял http://expert.delphi.int.ru/ на expert.delphi.int.ru и всё норм работает. Всем спс за помощь
Вадим К

Вадим К (статус: Академик), 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

scream (статус: Посетитель), 9 сентября 2009, 20:11 [#11]:

Ещё вопрос:
Get_URL('IExplore') возвращает к примеру: "http://expert.delphi.int.ru/",Opera-[Главная страница - Delphi.int.ru Expert]"
Как получить только expert.delphi.int.ru??

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 29 февраля 2020, 11:27
Выполнено за 0.03 сек.
Рейтинг@Mail.ru