Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выделить 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо