Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.05.13;
Скачать: [xml.tar.bz2];

Вниз

Компонент TScriptControl. как его готовить?   Найти похожие ветки 

 
Pcrepair ©   (2012-01-10 13:51) [0]

Добрый день
есть код

uses
 MSScriptControl_TLB; //и все остальные модули
///////////////////////
procedure TForm1.Button1Click(Sender: TObject);
begin
 try
   ScriptControl1.Language := "JavaScript"; //интерпретатор JAVA скриптов?
   Memo2.Text := (IntToStr(ScriptControl1.Eval(Memo1.Text))); //выводим в МЕМО2 результат выполнения скрипта из МЕМО1
 finally

 end;
end;

Результаты:
1. компиляция без ошибок (РАД2010)
2. если вставить в МЕМО1 1+5, в МЕМО2 выводит 6, так, к примеру, типа арифметика работает
3. если взять с закачаной страницы какой нибуть жаба-скрипт между тегов (<script language="Javascript">f_bottom("<br>", "", "")</script>) и вставить его в МЕМО1 то выскакивает сообщение: "Предполагается наличие объекта" или "Предполагается ...что то еще" и другие сообщения об ошибке

Вопрос для знатоков:
1. вообще TScriptControl + idHTTP можно как то приспособить для обработки скриптов в закачаной странице, типа как это делает браузер, или оно для чего то иного предназначено?
2. кто нибуть знает как в браузерах типа Гекко или Хромиум, или в других компонентах (Твеббраузер, Embedded Web Browser, THtmlViewer, WebKit) происходит обработка скриптов, в том смысле - нельзя ли их как то приспособить (использовать часть их кода) для обработки скриптов, без отображения результатов обработки в визуальном компоненте.
В общем нужно следующее
- idHTTP закачал страницу
- интерпретатор JAVA обработал скрипты в коде страницы и вставил на их место результат работы
Всем ответившим - СПАСИБО


 
sniknik ©   (2012-01-10 15:27) [1]

не в курсе компонента вообще, но MSJavaScript не одно и тоже с JavaScript... вроде бы, а объект явно от MS.
хорошо объясняет
> "Предполагается наличие объекта" или "Предполагается ...что то еще"


 
Dimka Maslov ©   (2012-01-10 16:32) [2]


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


Жаба-скрипт обычно связан со структурой страницы целиком, а не только тем, что между тегом. Вот ему объекта и не хватает.


 
Pcrepair ©   (2012-01-10 17:06) [3]


> Вот ему объекта и не хватает

и что делать?
скрипты разные бывают, но как правило содержат ссылки на файл.js в котором всякого наворочено.
неясно - Компонент TScriptContro нужен для этих дел, или он для чего другого?l


 
Anatoly Podgoretsky ©   (2012-01-10 17:52) [4]

http://podgoretsky.com/ftp/Docs/WSH/


 
Pcrepair ©   (2012-01-10 18:25) [5]

а Windows Script Host то тут причем?
или просто заголовок темы не читали?


 
Dimka Maslov ©   (2012-01-10 18:37) [6]


>  Pcrepair ©   (10.01.12 17:06) [3]


Не только. Там ещё могут быть ссылки на объекты самой страницы. Например на document.body.anchors или куда то ещё. Для чего нужен TScriptControl я не знаю, но подозреваю, что для выполнения кода, который появляется в процессе использования программы. И вырезка <script> из html-страницы будет работать только в простейших случаях.


 
sniknik ©   (2012-01-10 20:18) [7]

var
 Major, Minor: string;
begin
 ScriptControl1.Language     := "JScript";
 Major:= ScriptControl1.Eval("ScriptEngineMajorVersion()");
 Minor:= ScriptControl1.Eval("ScriptEngineMinorVersion()");
 Memo2.Text:= Major +"."+ Minor;
end;

а вот код из html страничек без их обьектной модели... врядли.


 
sniknik ©   (2012-01-10 20:23) [8]

или
begin
 ScriptControl1.Language:= "JScript";
 ScriptControl1.AddCode("var X = ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion()");
 Memo2.Text:= ScriptControl1.Eval("X");
end;


 
Pcrepair ©   (2012-01-10 21:36) [9]

ну в общем кое что прояснилось
c:\windows\system32\msscript.ocx.
этот кусок создает активХ объект ScriptControl из стандартной поставки WSH
и запускает в нем скрипт на исполнение.
похоже TScriptControl не для браузера, получается что браузеры что то свое, встроенное имеют для интерпретации скриптов в ХТМЛ-странице


 
Медвежонок Пятачок ©   (2012-01-11 11:22) [10]

да пофик что они имеют.
главное что твой делфийский процесс не имеет всех тех объектов, которые доступны оригинальному скрипту на странице.

И будут они недоступны тебе даже если ты заюзаешь тот же самый интерпретатор, что использует сам браузер.


 
sniknik ©   (2012-01-11 12:54) [11]

> получается что браузеры что то свое
надо же, "открыл америку"... да они на весь инет уже заколебали "мерятся", у кого пинг короче, да яваскрипт быстрее... было бы прикольно после этих "меряний" если бы они все использовали один, тем более мелкосовтский объект (особенно мульти-платформенные...).

> И будут они недоступны
зато их можно сделать самому "унутре", и будет это первый шаг на пути к созданию "своего", кривого, браузера. :)

вообще в чем цель? если нужен скриптовый язык то их много, а прямо тут, в этом "компоненте"/обьекте, можно использовать "бейсик скрипт", он не завязан на DOM браузера.


 
Pcrepair ©   (2012-01-11 15:57) [12]


> вообще в чем цель?

В общем нужно следующее
- idHTTP закачал страницу
- интерпретатор JAVA (или как то еще) обработал скрипты в коде страницы и вставил на их место результат работы


 
Сергей М. ©   (2012-01-11 16:17) [13]


> - idHTTP закачал страницу


Это блажь такая - закачать именно средствами idHTTP ?
WebBrowser"om (который потом и скрипты без вопросов исполнит) некошерно ?


 
Pcrepair ©   (2012-01-11 18:19) [14]

некошерно!!!
потомучто результат работы твеббраузера, особенно обработка жаба-скриптов, можно вывести только через клипборд (сделать КОНТРОЛ + А (+ С)). а чтоб вывести через клипборд, приложение должно быть активно (иначе не получит клипборд)) а чтоб приложение всегда было актвино, нужно или ставить виртМашину или вообще выделять отдельный кампутер для приложения - очень некошерно

к тому же твеббраузер дает очень загаженый хтмл-код, полные ссылки не восстанавливает, вообще вирусы его грызут и еще много косячком помельче
Хроимиум гораздо лучше, но принципиальные недостатки те же


 
Pcrepair ©   (2012-01-11 18:36) [15]

вот если бы использовать компонент TWebBrowse как то в темную, только для выполнения скриптов. такое возможно?


 
Dimka Maslov ©   (2012-01-11 18:45) [16]


> можно вывести только через клипборд


Вы перестаньте мне сказать, как говорят в Одессе.


 
Pcrepair ©   (2012-01-11 18:49) [17]

а как еще? нашел только это

WebBrowser1.Navigate(URL, Flags, TargetFrameName, PostData, Headers);
repeat
   Application.ProcessMessages;
 until WebBrowser1.ReadyState >= READYSTATE_COMPLETE;
 if WebBrowser1.Document <> nil then
 (Webbrowser1.Document as IHTMLDocument2).ParentWindow.Focus;
 WebBrowser1.ExecWB(OLECMDID_SELECTALL,OLECMDEXECOPT_DONTPROMPTUSER);
 Application.ProcessMessages;
 if (Webbrowser1.Document as IHTMLDocument2).queryCommandEnabled("Copy") then
 Application.ProcessMessages;
 WebBrowser1.ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER);


 
Dimka Maslov ©   (2012-01-11 19:09) [18]


> Pcrepair ©   (11.01.12 18:49) [17]

Вот только недавно тут была ветка на эту тему, где всё подробно разъяснялось, чем берётся текст из браузера. Кто там автор?


 
Pcrepair ©   (2012-01-11 19:20) [19]

причем тут текст из браузера?
нужен не только текст, но и все остальное - полные ссылки, табличная структура страницы

и где там подробно разъяснялось? кроме флуда, практически ничего небыло


 
sniknik ©   (2012-01-11 19:47) [20]

> причем тут текст из браузера?
> нужен не только текст, но и все остальное - полные ссылки, табличная структура страницы
и текст и ссылки и вообще все, что имеет сам WebBrowser, DOM структуру  изучай. и его интерфейсы для доступа.

> и где там подробно разъяснялось? кроме флуда, практически ничего небыло
если там была твоя ветка, то чего ты хотел с такими тупыми и безапелляционными заявлениями (из которых [14] практически полностью состоит)???


 
Dimka Maslov ©   (2012-01-11 20:00) [21]

Там было сказано в конце, что полное описание интерфейса IHtmlDocument2 находится на конкретной странице MSDN. Изучив эту документацию, можно получить всю информацию по всей объектной модели документа, тексту, ссылкам, таблицам, фреймам, скриптам и проч. Не изучив ни одного подобного описания не возможно писать программы. Например, когда мне по работе, довольно далёкой от программирования, понадобилось описание векторных графических форматов eps и svg, я же не лез на форумы, а взял соответствующие документы с сайтов adobe и rfc, прочитал их и написал нужную мне программулину. Никто за Вас изучать техническую документацию не будет и писать по ней программу тоже. Ибо время очень дорогой и органиченный ресурс (час моего рабочего времени, к примеру, стоит около $100). Займитесь своей программой сами. Здесь могут только посоветовать, но не сделать за Вас работу.


 
Pcrepair ©   (2012-01-11 20:26) [22]

а что там тебе (14) конкретно не так?
все что там написано - результат испытаний вполне рабочего варианта.
но недостаточно удобного в использовании


 
Pcrepair ©   (2012-01-11 20:33) [23]

ну тут были вопросы к практикам, а не к теоретикам
все что мне нужно - понять, стоит ли "копать"
а MSDN, так как и прочие рукамиводящие документы, можно изучать долго и упорно, причем без всякой практической пользы
вот щас наверно кто начнет песнь о обязательной необходимости изучения высшей математики для программиста
впрочем, кое что стало очевидно - TScriptControl не пригоден
одной ямой меньше!!


 
знайка   (2012-01-11 20:40) [24]

Еще смотря какие скрипты, не все результаты их работы вы в структуре увидите, темболее если тупо текстом.


 
sniknik ©   (2012-01-11 20:48) [25]

> а что там тебе (14) конкретно не так?

> можно вывести только через клипборд
> приложение должно быть активно
> нужно или ставить виртМашину или вообще выделять отдельный кампутер для приложения
> дает очень загаженый хтмл-код,
> полные ссылки не восстанавливает,
> вообще вирусы его грызут
> много косячком помельче

все полная чушь, от простой неправды до бреда.


 
Dimka Maslov ©   (2012-01-11 20:49) [26]

Высшая математика обязательна для изучения всеми, кто претендует на звание образованного человека. А MSDN, так как и прочие рукамиводящие документы, нужно изучать долго и упорно, ибо только в них заключается практическая польза, для которой документы и пишутся. Теории как таковой тут нет и быть не может. Если Вы считаете чтение мануалов не барским занятием - Вам нечего делать в программировании вообще и на этом сайте в частности. Или наоборот.


 
Pcrepair ©   (2012-01-11 21:44) [27]

Удалено модератором


 
Сергей М. ©   (2012-01-11 21:53) [28]


> это форум, ветка для начинающих


Именно.
Но в  [14] ты понес откровенную ахинею.
Как говаривал проф.Преображенский - "космического масштаба и космической же глупости" (с)


 
Pcrepair ©   (2012-01-11 21:56) [29]

Удалено модератором


 
Dimka Maslov ©   (2012-01-11 23:06) [30]


>  выведи то что отображено на визуальной части компонента
> ВебБраузер с сохранением ссылок, табличных и прочих тегов
> в файл или переменную


Сказано же, моё рабочее время стоит $100/час. Не думаю, что у Сергея меньше. Идёшь к его работодателю, заключаешь договор на оказание информационных услуг и через несколько дней получишь свой код. Нет денег? Тогда прислушайся к тем советам, которые тебе дали. Они полезны. И это не флуд. А делать за тебя да ещё и безвозмездно, т.е. даром, никто не будет. Это, как говорится, бизнес и ничего лишнего. Впрочем, я повторяюсь, но уже никакой надежды на то, что буду услышан нет. Всего хорошего и спасибо за рыбу.


 
sniknik ©   (2012-01-11 23:09) [31]

развод "на слабо"... самая дебильная линия поведения здесь. так, для справки.


 
Pcrepair ©   (2012-01-11 23:52) [32]

Удалено модератором
Примечание: Наезжать и оскорблять будешь в другом месте


 
sniknik ©   (2012-01-12 00:23) [33]

> тех кто только флудить может?
и еще "кино снимать" - вот тебе "пример", управление - кнопки на панели программы, управляют маркером в браузере (гугльмап), и сохраняют координату из него в базу (прога правда старая, очень, саму базу не нашел/генерить не хочу, поэтому ошибка... но визуально координата тоже отображается в едит справа вверху)
http://webfile.ru/5765297

p.s. можешь не верить, но объекты гугльмапа посложнее, чем "ссылки"/... будут.


 
Pcrepair ©   (2012-01-12 08:55) [34]

Удалено модератором


 
Сергей М. ©   (2012-01-12 09:18) [35]


> Pcrepair ©   (11.01.12 18:19) [14]


Скажи, любезный, накой хрен тебе сдался это клипборд ?
Предположим, твоя изначальная затея снюхать скриптконтрол с idhttp реализуема и ты запустил скрипт.
Каким боком это касается тех самых результатов работы твеббраузера, которые можно "вывести только через клипборд" ?


 
sniknik ©   (2012-01-12 09:54) [36]

> никогда таким не занимался.
вообще то занимался, довольно таки часто, и давно. не в твоем понимании "таким" через клиппборд, а в моем через интерфейс, но результат тот же - вытаскивание данных со страницы и использование результата в программе.
еще "киношку" снять? с другой моей проги? (кода не будет, в связи с твоей неадекватностью)

> просто не надо теории излагать, мне нужен практический совет от тех кто в теме
не для таких как ты. практические тут тоже дают... адекватным.

> Скажи, любезный, накой хрен тебе сдался это клипборд ?
я бы поставил вопрос иначе - на кой хрен ему сдалось это программирование?


 
Dimka Maslov ©   (2012-01-12 10:22) [37]


> Pcrepair ©   (11.01.12 23:52) [32]


Не надо путать стоимость рабочего времени и зарплату работников. Ты ещё и в экономике не шаришь, а не только в математике и программировании. Практический совет тебе дали неоднократно. Но раз в тебе мы видим редкостный случай незнания, глупости, нахальности, упоротости, неуважения и нежелания что-либо понять. Почему же мы должны тратить своё время на то, что за тебя написать программу? Программирование - это не тырение чужого кода, а разработка своего. Не можешь программировать - не программируй.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.05.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.005 c
15-1325791518
Сусл_
2012-01-05 23:25
2012.05.13
Android


4-1256672610
cerber
2009-10-27 22:43
2012.05.13
Изменить привилегии доступа к ветке реестра


15-1325712605
Юрий
2012-01-05 01:30
2012.05.13
С днем рождения ! 5 января 2012 четверг


2-1326189074
Pcrepair
2012-01-10 13:51
2012.05.13
Компонент TScriptControl. как его готовить?


2-1326300960
Gu
2012-01-11 20:56
2012.05.13
константы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский