![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выделить Checkbox в webbrowser!
Седрак © (2008-08-21 13:18:00)Добрый день....как можно выделить опеределнный чекбокс в компонененте веббраузер?
Допустим я кинул на форму webbrowser1...и урл его http://delphimaster.ru/cgi-bin/forum.pl?n=18как мне сделать так что б автоматический галочка стояла допустим в <input type="checkbox" name="vd6" value="D7" />D7 ??
заранее благодарю....
Vlad Oshin (2008-08-22 14:24:00) [1]вот процедурка, перебирает окна IE, и если находит какие поля то заполняет. (на комменты внимания не обращать :))
тебе надо к
<input type="checkbox" name="vd6" value="D7" />D7
прикрутить это
CHECKED – указывает, что поля типов checkbox и/или radio (см. выше атрибут TYPE) активизированы.
методом подмены innerHTML, OuterHTML
procedure FillAll1(FullName,DateOfBirth,PlaceOfBirth,Gender:string); //аналогично, только заполняются дети. 1
var
Winds: IShellWindows;
IEWB: IWebBrowser2;
Doc: IHtmlDocument2;
i,j:integer;
Coll : IHTMLElementCollection;
begin
Winds:=CoShellWindows.Create;
for j:=0 to Winds.Count-1 do
if (Winds.Item(j) as IWEbBrowser2).Document<>nil
then begin
IEWB:=Winds.Item(j) as IWEbBrowser2;
if IEWB.Document.QueryInterface(IhtmlDocument2, Doc)= S_OK
then begin //начало подключения
doc.all.tags('INPUT').QueryInterface(IHTMLElementCollection,coll);
for i:=0 to Coll.length-1 do begin //--------------- заполняем типа Input все
// имя фамилия
if (HTMLInputElement(Coll.item(i,varEmpty)).name='ACCOMP_BACKUP.DEFAULT.NAME_E.01')
then begin HTMLInputElement(Coll.item(i,varEmpty)).value:=FullName; end;
// Дата рождения
if (HTMLInputElement(Coll.item(i,varEmpty)).name='ACCOMP_BACKUP.DEFAULT.DOB.01')
then begin HTMLInputElement(Coll.item(i,varEmpty)).value:=DateOfBirth; end;
// Место рождения
if (HTMLInputElement(Coll.item(i,varEmpty)).name='ACCOMP_BACKUP.DEFAULT.DOB_PLC.01' )
then begin HTMLInputElement(Coll.item(i,varEmpty)).value:=PlaceOfBirth; end;
end;
doc.all.tags('SELECT').QueryInterface(IHTMLElementCollection,coll);
for i:=0 to Coll.length-1 do begin //--------------- заполняем типа Select все
// Пол, определяем полом
if (HTMLInputElement(Coll.item(i,varEmpty)).name='ACCOMP_BACKUP.DEFAULT.SEX.01')
then begin
if Gender[1]='M' then
HTMLInputElement(Coll.item(i,varEmpty)).outerHTML:='<SELECT size=1 name=ACCOMP_BACKUP.DEFAULT.SEX.01>'+
'<OPTION value=1 selected>Male<OPTION value=2>Female</OPTION></SELECT>';
if Gender[1]='F' then
HTMLInputElement(Coll.item(i,varEmpty)).outerHTML:='<SELECT size=1 name=ACCOMP_BACKUP.DEFAULT.SEX.01>'+
'<OPTION value=1>Male<OPTION value=2 selected>Female</OPTION></SELECT>';
end;
// Сын или дочь, определяем полом
if (HTMLInputElement(Coll.item(i,varEmpty)).name='ACCOMP_BACKUP.DEFAULT.RELN.01')
then begin
if Gender[1]='M' then
HTMLInputElement(Coll.item(i,varEmpty)).outerHTML:='<SELECT size=1 name=ACCOMP_BACKUP.DEFAULT.RELN.01>'+
'<OPTION value=0>Select Relation<OPTION value=2>WIFE<OPTION value=3 selected>SON<OPTION value=4>DAUGHTER</OPTION></SELECT>';
if Gender[1]='F' then
HTMLInputElement(Coll.item(i,varEmpty)).outerHTML:='<SELECT size=1 name=ACCOMP_BACKUP.DEFAULT.RELN.01>'+
'<OPTION value=0>Select Relation<OPTION value=2>WIFE<OPTION value=3>SON<OPTION value=4 selected>DAUGHTER</OPTION></SELECT>';
end;
// пока тупо Россия
if (HTMLInputElement(Coll.item(i,varEmpty)).name='ACCOMP_BACKUP.DEFAULT.DOB_CNTRY.0 1')
then begin
HTMLInputElement(Coll.item(i,varEmpty)).outerHTML:='<SELECT size=1 name=ACCOMP_BACKUP.DEFAULT.DOB_CNTRY.01>'+
'<OPTION value=477>RUSSIA</OPTION></SELECT>';
end;
end;//--------------- заполняем типа Select все
end; //конец подключения
end;
end;
седрак (2008-08-21 17:31:00) [2]Откопал...
Как включить/выключить CheckBox в TWebBrowser?
// Включаем/выключаем CheckBox в первой форме
procedure TForm1.Button1Click(Sender: TObject);
var
ovElements: OleVariant;
i: Integer;
begin
ovElements := WebBrowser1.OleObject.Document.Forms.Item( 0 ).Elements;
for i := 0 to ( ovElements.Length-1 ) do
if ( AnsiUpperCase( ovElements.Item( i ).tagName ) = 'INPUT' ) then
if ( AnsiUpperCase( ovElements.Item( i ).type ) = 'CHECKBOX' ) then
if ( ovElements.item( i ).Value = 'Some text' ) then
ovElements.Item( i ).Click;
end;
но что то разобраться не могу))если запашет, мож скажете?))
Vlad Oshin (2008-08-21 15:19:00) [3]поищи по innerHTML, OuterHTML
Смысл - когда подгрузится страница, заменить innerHTML на свое значение
Седрак (2008-08-21 15:05:00) [4]ууу ясно)))глухо все значь)))а мож у кого еще есть мысли)))
Vlad Oshin (2008-08-21 14:25:00) [5]нет!!!
я делал, даже без webbrowser, а сразу с IE,
но диск запортился с исходниками, восстанавливаю вот сижу, программки всякие пробую. Восстановлю - скажу
SSSs (2008-08-21 14:02:00) [6]это понятно...только автоматические как мне сделать сво-во помечен......что то я не догоняю?можно мне в прямую сказать?
Vlad Oshin (2008-08-21 13:43:00) [7]
> чекбокс..
елемент
> формы хтмл
и имеет cв-во, помечен или нет.
см. в html какое
седрак (2008-08-21 13:35:00) [8]там автомотическое заполнение формы хтмл...где надо вводить слово....а мне нужно выделить чекбокс..но все равно спасибо за подсказку...
Vlad Oshin (2008-08-21 13:24:00) [9]http://delphiworld.narod.ru/base/auto_fill_html_forms.html