Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.05;
Скачать: CL | DM;

Вниз

Выделить Checkbox в webbrowser!   Найти похожие ветки 

 
Седрак   (2008-08-21 13:18) [0]

Добрый день....как можно выделить опеределнный чекбокс в компонененте веббраузер?
Допустим я кинул на форму webbrowser1...и урл его http://delphimaster.ru/cgi-bin/forum.pl?n=18 как мне сделать так что б автоматический галочка стояла допустим в <input type="checkbox" name="vd6" value="D7" />D7 ??
заранее благодарю....


 
Vlad Oshin ©   (2008-08-21 13:24) [1]

http://delphiworld.narod.ru/base/auto_fill_html_forms.html


 
седрак   (2008-08-21 13:35) [2]

там автомотическое заполнение формы хтмл...где надо вводить слово....а мне нужно выделить чекбокс..но все равно спасибо за подсказку...


 
Vlad Oshin ©   (2008-08-21 13:43) [3]


> чекбокс..

елемент
> формы хтмл

и имеет cв-во, помечен или нет.

см. в html  какое


 
SSSs   (2008-08-21 14:02) [4]

это понятно...только автоматические как мне сделать сво-во помечен......что то я не догоняю?можно мне в прямую сказать?


 
Vlad Oshin ©   (2008-08-21 14:25) [5]

нет!!!
я делал, даже без webbrowser, а сразу с IE,
но диск запортился с исходниками, восстанавливаю вот сижу, программки всякие пробую. Восстановлю - скажу


 
Седрак   (2008-08-21 15:05) [6]

ууу ясно)))глухо все значь)))а мож у кого еще есть мысли)))


 
Vlad Oshin ©   (2008-08-21 15:19) [7]

поищи по innerHTML, OuterHTML
Смысл - когда подгрузится страница, заменить innerHTML на свое значение


 
седрак   (2008-08-21 17:31) [8]

Откопал...
Как включить/выключить 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-22 14:24) [9]

вот процедурка, перебирает окна 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;



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

Текущий архив: 2008.10.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
2-1219902669
vvrz
2008-08-28 09:51
2008.10.05
несколько колонок в QReport


2-1219307844
ничтожная козявка
2008-08-21 12:37
2008.10.05
заNILить форму после Close;


15-1218377553
Урсулапов
2008-08-10 18:12
2008.10.05
А почему пост про день рождения 9 августа не было?


15-1218831455
_koha
2008-08-16 00:17
2008.10.05
Народ как достать RAD STUDIO


15-1218549474
Dmitry S
2008-08-12 17:57
2008.10.05
Как выразить битовую операцию or с помощью сложения и умножения?