Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выполнить javascript из Delphi, а результат в TMemo 
:(
    Опции темы
Yuran_
Дата 22.2.2008, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.2.2008

Репутация: нет
Всего: нет



На странице есть tedit с кнопкой запуска js. В TEdit нужно ввести артикул например 4850901 и нажать на кнопку. Результатом работы скрипта будет список городов в которых есть такая запчасть. Мне нужно сделать так чтобы: на форве в тэдит ввожу артикул и жму на кнопку, а моя прога коннектилась бы на сайт, запускала бы скрипт а результат выводился бы в тмемо. Я так понял что с помощью indy этого не сделать никак. Нашел вот это 
function ExecuteScript(doc: IHTMLDocument2; script: string; language: string):  Boolean;
var
  win: IHTMLWindow2;
  Olelanguage: Olevariant;
begin  if doc <> nil then
  begin
    try
      win := doc.parentWindow;
      if win <> nil then
      begin
        try
          Olelanguage := language;
          win.ExecScript(script, Olelanguage);
        finally
          win := nil;
        end;
      end;
    finally
      doc := nil;
    end;
  end;
end;

но как это прикрутить к моей проге не знаю.
вот код страницы со скриптом 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">


<HTML>
 <HEAD>
  <LINK href="/spare.css" rel=stylesheet type=text/css>
  <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
  <TITLE> Остатки </TITLE>
  <script type='text/javascript'>
    var req=null;
    var console=null;
    var READY_STATE_UNINITIALIZED=0;
    var READY_STATE_LOADING=1;
    var READY_STATE_LOADED=2;
    var READY_STATE_INTERACTIVE=3;
    var READY_STATE_COMPLETE=4;
    function sendRequest(){
        req=initXMLHTTPRequest();
        var s = document.getElementById("sn");
        if (req){
            req.onreadystatechange=onReadyState;
            req.open("GET","http://accentservice.kiev.ua/mod_perl/spare/article.pl",true);
            req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            req.send("sn="+s.value);
        }
    }
    function initXMLHTTPRequest(){
        var xRequest=null;
        if (window.XMLHttpRequest){
            xRequest=new XMLHttpRequest();
        }else if (window.ActiveXObject){
            xRequest=new ActiveXObject("Microsoft.XMLHTTP")
        }
        return xRequest;
    }
    function onReadyState(){
        var ready=req.readyState;
        var data=null;
        if (ready==READY_STATE_COMPLETE){
            data=req.responseText;
        }else{
            data="<p>&nbsp;&nbsp;&nbsp;<img src=await.gif>"
        }
        toConsole(data);
    }
    function toConsole(data){
        if (console!=null){
            console.innerHTML=data;
        }
    }
    window.onload=function(){
        console=document.getElementById('console');
    }
 </script>
 </HEAD>


 <BODY>
    <p>Артикул: <input type="text" maxlenght="12" size="13" name="sn" value="" id="sn">
    <input name="SUBMIT" alt="" value="Найти!" src="searchbutton.gif" 
style="width: 24px; 
height: 24px;
" type="image" 
onClick="sendRequest();"><br>
    <div id='console'></div>

</BODY>
</HTML>

результат выполнения вот:
 

Артикул:        4850901
Наименование:   дисплей N-3250СЦ Кол-во Дата
 Харьков                       60              20.02.2008
 Основной склад           33              20.02.2008
 Одесса                         27              20.02.2008
 Ровно                           26               20.02.2008
 Запорожье                   23              20.02.2008
 Киев                             22              20.02.2008
 

мне надо все это дело в tmemo загнать! Спасибо.
PM MAIL   Вверх
December
Дата 22.2.2008, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 1
Всего: 57



TWebBrowser тебе поможет


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Yuran_
Дата 22.2.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.2.2008

Репутация: нет
Всего: нет



Это я уже понял. НО КАК!! ???? Хоть примерчий какой дайте плз. 
PM MAIL   Вверх
December
Дата 22.2.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 1
Всего: 57



Смотри в DRKB пример работы с TWebBrowser.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Yuran_
Дата 22.2.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.2.2008

Репутация: нет
Всего: нет



function ExecuteScript(doc: IHTMLDocument2; script: string; language: string): Boolean; 

var 

win: IHTMLWindow2; 

Olelanguage: Olevariant; 

begin 

if doc <> nil then 

begin 

   try 

     win := doc.parentWindow; 

     if win <> nil then 

     begin 

       try 

         Olelanguage := language; 

         win.ExecScript(script, Olelanguage); 

       finally 

         win := nil; 

       end; 

     end; 

   finally 

     doc := nil; 

   end; 

end; 

end; 

Это я уже находил. Но я не спец и мне трудно приспособить этот код к моей программе. Вы можете сделать наброски? Буду очень признателен.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.