![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
заполнение контролов в IE по принципу twebbrowser. AV, помему? [D7, WinXP]
Vlad Oshin © (2007-03-20 15:28:00)IE6
Для управления twebbrowser писал:
var...
Coll : IHTMLElementCollection;
Doc: IHTMLDocument2;
i:integer;
begin
Doc:= IHTMLDocument2(form1.WebBrowser1.Document);
Coll:=IHTMLElementCollection(Doc.All.Tags('INPUT'));
for i:=0 to Coll.length-1 do begin //--------------- заполняем типа Input все
if (HTMLInputElement(Coll.item(i,varEmpty)).name='FRM_VISA_SINGLE_FORM_N.DEFAULT.F_ NM_E.01')
then begin HTMLInputElement(Coll.item(i,varEmpty)).value:=FirstName; end;
или
// выбор пола (по идеи - если есть муж, то женский)
if (HTMLInputElement(Coll.item(i,varEmpty)).name='FRM_VISA_SINGLE_FORM_N.DEFAULT.SE X.01')
then begin
if HusbandName<>'' then begin
HTMLInputElement(Coll.item(i,varEmpty)).outerHTML:='<SELECT size=1 name=FRM_VISA_SINGLE_FORM_N.DEFAULT.SEX.01>'+
'<OPTION value=1 >Male<OPTION value=2 selected>Female</OPTION></SELECT>';
нормально было
решил для IE переделать:
var Winds: IShellWindows;
IEWB: IWebBrowser2;
Doc: IHtmlDocument2;
i,j:integer;
Coll : IHTMLElementCollection;
begin
Winds:=CoShellWindows.Create;
for i:=0 to Winds.Count-1 do
if (Winds.Item(i) as IWEbBrowser2).Document<>nil
then begin
IEWB:=Winds.Item(i) as IWEbBrowser2;
if IEWB.Document.QueryInterface(IhtmlDocument2, Doc)= S_OK
// ТУТ doc - такой же doc как в случае с webbrowser
// значит, работаем с ним также. или нет?
then begin
Coll:=IHTMLElementCollection(Doc.All.Tags('INPUT'));
for j:=0 to Coll.length-1 do begin //--------------- AV при попытке определить Coll.length
if (HTMLInputElement(Coll.item(j,varEmpty)).name='FRM_VISA_SINGLE_FORM_N.DEFAULT.F_ NM_E.01')
then HTMLInputElement(Coll.item(j,varEmpty)).value:='aaa';
end;
end;
end;
Vlad Oshin (2007-03-20 16:22:00) [1]спасибо, заработало!
Ш-К (2007-03-20 15:57:00) [2]Попробуй привести к IHTMLElementCollection через QueryInterface, а не простым кастом.
Vlad Oshin (2007-03-20 15:53:00) [3]нет
clickmaker (2007-03-20 15:46:00) [4]Coll = nil что-ли?