Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизАвтоматизация и контроль над Internet Explorer Найти похожие ветки
← →
Dimedrol © (2005-10-20 12:51) [0]Коллеги, я использую TwebBrowser
для того чтобы работать с web-страничкой.
Мне понадобилась такая фунциональность,
чтобы я, например, мог узнать, на каком элементе формы
мы сейчас кликнули и записать туда что-нить.
Изменить значение какого-то поля на форме
можно вот так:
Webbrowser1.OleObject.Document.all.tags("Input").item("MyFieldName").value:="Privet vsem!";
А вот, чтобы узнать, в каком поле мы сейчас находимся,
тут, вроде, нужно расширить умолчабельную функциональность.
Как это описано здесь -
http://groups.google.com/group/borland.public.delphi.internet/browse_thread/thread/7cae29209cb15cce/94ce6db8007d0cc3?lnk =st&q=TWebBrowser+item+clicked&rnum=4&hl=en#94ce6db8007d0cc3
Чтобы это сделать нужно сделать, как мне стало известно,
необходимо сначала импортнуть библиотеку типов -
"MSHTML type library".
Описано тут - http://bdn.borland.com/article/0,1410,26574,00.html
Получиться здоровенный PAS-файл. (у меня - ок. 11мб)
Так вот, когда я пытаюсь его компильнуть, находит 4 ошибки,
как то - undeclared identifier "fonts" и т.п.
Кто-то боролся с этим ?
← →
evvcom © (2005-10-20 15:49) [1]
> http://bdn.borland.com/article/0,1410,26574,00.html
Что за адрес такой?
Вообще делается это примерно так. В модели объектов браузера ищется необходимый объект, который имеет нужное тебе свойство. В данном случае это что-то типа EVENT. Запрашивается указатель на интерфейс этого объекта и считывается свойство, которое в данном случае в свою очередь тоже является объектом.
← →
Dimedrol © (2005-10-20 18:03) [2]Мда... ясности не прибавило.
А адрес, - так этот форум подсвечивает "незнакомые" адреса.
Думаю что ты догадался скопировать всю строку и встваить в браузер вручную.
← →
programania © (2005-10-20 21:55) [3]
ID: IHTMLDocument2;
IL: IHTMLElement;
...
form1.webBrowser1.Document.QueryInterface(IHTMLDocument2, ID);
if ID<>nil then begin
IL:=ID.Get_activeElement;
showMessage("Активный элемент "+IL.Get_outerHTML);
end;
//или по координатам мыши
function GetElementType(x, y: integer): string;
var ID: IHTMLDocument2;
begin
Result:="Unknown";
form1.webBrowser1.Document.QueryInterface(IHTMLDocument2, ID);
if ID<>nil then begin
IL:=ID.Get_activeElement;
s:=IL.Get_outerHTML;
IL:=ID.elementFromPoint(x,y);
if IL<>nil then
Result:=IL.Get_outerHTML;//Get_tagName;
end;
end;
← →
Dimedrol © (2005-10-21 12:28) [4]чтобы получить - IHTMLDocument2
мне и надо импортнуть библиотеку типов - "MSHTML type library"!!!
← →
evvcom © (2005-10-21 13:59) [5]
> Получиться здоровенный PAS-файл. (у меня - ок. 11мб)
Странно. У меня D7 создала всего на 1 987 078 байт. IE 6.0.2800.
← →
isasa © (2005-10-21 14:21) [6]А посмотреть
$Delphi$\Source\Internet\MSHTML.pas
← →
Dimedrol © (2005-10-21 15:05) [7]Вааааааау!
ОГРОМНОЕ спасибо, isasa © !
Ларчик-то просто октрывался!
Как обычно.
Какой же я тупой! :-))
Короче - заработало!
Там действительно уже есть интерфейс IHTMLDocument2!
← →
isasa © (2005-10-21 15:18) [8]:)
Если понадобятся "свежие" разработки, операцию импорта придется выполнить :)
// PASTLWTR : 1.1
// File generated on 7/26/99 12:19:44 PM from Type Library described below.
// ************************************************************************ //
// Type Lib: C:\WINNT\System32\mshtml.tlb (1)
← →
Dimedrol © (2005-10-21 17:33) [9]Да да... это я догадался.
Но, пока нет.
Я уже ваяю прогу. И все нормально.
Мне просто нужно было:
- узнать на каком элементе формы сделали DoubleClick;
- узнать значение HIDDEN элемента с похожим именем;
... т.к. в Value этого Hidden элемента я записал ID записи из базы,
к которой мне нужно выполнить запрос.
С "умолчабельным" MSHTML.pas - все срабатывает.
Спасибо! :-)
PS
Вообще я все это затеял, чтобы не возиться с Javascript.
Там мне нужно в зависимости от значения одного поля ввода,
которое моежно поменять на-лету, выдавать список значений на выбор
для другого поля.
Список может быть довольно большой - до 1000 элементов а иногда и больше.
Не хочу грузить HTML страницу такими данными.
И, кстати, если значение "флага" в первом поле воода поменяется,
мне придется перечитать значения всех этих 1000 элементов...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c