Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2011, 21:36   #11
DjDram
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
потому что надо ждать события OnDocumentComplete(и в том еще проверять на статус браузера)
о да понял про событие уже получилось а как правильно создать и разрушить объект webbrowser1


Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
TRY
 webbrowser1.create(nil);
 BEGIN
    webbrowser1.Navigate('http://www.youtube.com/watch?v=lkKhfP4fZZs&feature=relmfu');
 END;
FINALLY
  webbrowser1.FREE;
END;
так ошибка получается
DjDram вне форума Ответить с цитированием
Старый 10.09.2011, 21:40   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кто вас так учил создавать объекты?
да и зачем в вашем случае уничтожать и создавать компонент кинутый на форму?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.09.2011, 21:51   #13
DjDram
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 53
По умолчанию

да потомучто он мне нужен только для снятия исходного кода через idHTTP код получается не такой вот и приходиться заморачиваться с WebBrowser а чтоб он в памяти висел не вижу смысла

P.S. С формы я его уже убрал.
DjDram вне форума Ответить с цитированием
Старый 10.09.2011, 21:56   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
var WB:TWebBrowser;
begin
 WB:=TWebBrowser.Create(nil);
 WB.Navigate(<addr>);
 while WB.readyState<>4 do Application.ProcessMessages;//помоему 4 там
 SaveHTMLSourceToStrings(Memo1.Lines,WB);
 WB.free;
end;
PS: повторю еще раз, в первом коде(пост 1) вы неверно маскировались под ИЕ.
не такие у него заголовки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.09.2011, 23:25   #15
DjDram
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
var WB:TWebBrowser;
begin
 WB:=TWebBrowser.Create(nil);
 WB.Navigate(<addr>);
 while WB.readyState<>4 do Application.ProcessMessages;//помоему 4 там
 SaveHTMLSourceToStrings(Memo1.Lines,WB);
 WB.free;
end;
PS: повторю еще раз, в первом коде(пост 1) вы неверно маскировались под ИЕ.
не такие у него заголовки.
Странно вроде всё верно а не работает, да было бы супер если бы замаскироваться по ИЕ ну не где нету инфы.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
WebBrowser1:TWebBrowser;
StringStream:TStringStream;
RegExp: TRegExpr;
S:string;
begin
     WebBrowser1.Create(SELF);
     WebBrowser1.Navigate('http://www.youtube.com/watch?v=lkKhfP4fZZs&feature=relmfu'); //стопорится ошибка на этом
     while WebBrowser1.readyState<>4 do Application.ProcessMessages;
     StringStream:=TStringStream.Create;
     SaveHTMLSourceToStream(StringStream,WebBrowser1);
     RegExp := TRegExpr.Create;
     RegExp.InputString := StringStream.DataString;
     RegExp.Expression := 'url_encoded_fmt_stream_map=url%3D(.*?)%253B';
     if RegExp.Exec then
               begin
                 S:=(RegExp.Match[1]);
                 S:=ReplaceStr(S,'%253A',':');
                 S:=ReplaceStr(S,'%252F','/');
                 S:=ReplaceStr(S, '%253F', '?');
                 S := ReplaceStr(S, '%253D', '=');
                 S := ReplaceStr(S, '%253F', '?');
                 S := ReplaceStr(S, '%25252C', '%2C');
                 S := ReplaceStr(S, '%2526', '&');
                 S := ReplaceStr(S, '%26', '&');//
                 S := ReplaceStr(S, '%3D', '=');
                 S := ReplaceStr(S, '%25253A', '%3A');
 WindowsMediaPlayer1.URL:=S;
 memo1.Text:=S;
end;
RegExp.Free;
StringStream.Free;
end;
end.

Последний раз редактировалось DjDram; 10.09.2011 в 23:29.
DjDram вне форума Ответить с цитированием
Старый 10.09.2011, 23:39   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

какая ошибка?


Цитата:
да было бы супер если бы замаскироваться по ИЕ ну не где нету инфы.
сниффер в руки и смотрим что отправляет ИЕ.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.09.2011, 23:45   #17
DjDram
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
какая ошибка?
я так понимаю он не спевает создать WebBrowser1.Create(SELF);
DjDram вне форума Ответить с цитированием
Старый 10.09.2011, 23:50   #18
DjDram
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 53
По умолчанию

добавил задержку

Код:
procedure Delay(dwMilliseconds: Longint);
 var
 iStart, iStop: DWORD;
 begin
 iStart := GetTickCount;
 repeat
 iStop := GetTickCount;
 Application.ProcessMessages;
 until (iStop - iStart) >= dwMilliseconds;
 end;
Код:
  WebBrowser1.Create(nil);
     delay(3000);
     WebBrowser1.Navigate('http://www.youtube.com/watch?v=lkKhfP4fZZs&feature=relmfu'); 
      delay(3000);
     StringStream:=TStringStream.Create;
всё равно ошибка
DjDram вне форума Ответить с цитированием
Старый 10.09.2011, 23:53   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
     WebBrowser1.Create(SELF);
не успевает тут и быть не может, код последовательный.
суть в том что вы не правильно создаете обьект.
пересмотрите мой код:
Код:
WB:=TWebBrowser.Create(nil);
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.09.2011, 23:56   #20
DjDram
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
     WebBrowser1.Create(SELF);
не успевает тут и быть не может, код последовательный.
суть в том что вы не правильно создаете обьект.
пересмотрите мой код:
Код:
WB:=TWebBrowser.Create(nil);
не дело было не в бабине всё равно ругается правда уже в другом месте

Последний раз редактировалось DjDram; 10.09.2011 в 23:59.
DjDram вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исходный код сайта. 2 Тутонхамон Работа с сетью в Delphi 0 22.05.2011 14:38
Исходный код сайта. Тутонхамон Работа с сетью в Delphi 7 22.05.2011 07:59
преобразовать исходный код *Оля* Паскаль, Turbo Pascal, PascalABC.NET 0 18.04.2010 20:47
Исходный код страницы Abuhamed PHP 5 02.02.2010 00:34
Расформатировать исходный код страницы OdNairy Работа с сетью в Delphi 5 19.09.2009 18:13