|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
возможно ли в браузере отловить radio checked ?
есть компонент браузер, по нажатию кнопки в него загружается html файл,
загруженный html файл представляет из себя вопрос с вариантами ответов, вариант ответа выбирается radiobutton.( правильный ответ может быть только один) Дальше ,по нажатию кнопки, загружается следующий вопрос. Так вот, можно ли в браузере отловить вариант правильного ответа(radiobutton checked=true) ?? Или может с помощью других компонент |
#2
|
||||
|
||||
да, конечно:
Код:
unit Unit1; interface uses MSHTML, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 = class(TForm) WebBrowser: TWebBrowser; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses MSXML2_TLB; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var document: OleVariant; stringlist: TStringList; begin WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState<READYSTATE_INTERACTIVE do Application.ProcessMessages; stringlist:=TStringList.Create; try stringlist.LoadFromFile('test.htm'); document:=WebBrowser.Document; document.clear; document.open; document.write(stringlist.Text); document.close; while WebBrowser.ReadyState<READYSTATE_COMPLETE do Application.ProcessMessages; finally stringlist.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var document: IHTMLDocument2; forms: IHTMLFormElement; element: IHTMLElement; i: Integer; inputelement: IHTMLInputElement; s: String; begin document:=WebBrowser.Document as IHTMLDocument2; forms:=document.forms.item('test', 0) as IHTMLFormElement; s:=''; for i:=0 to forms.length-1 do begin element:=forms.item(i, '') as IHTMLElement; if element.tagName='INPUT' then begin inputelement:=element as IHTMLInputElement; if inputelement.type_='radio' then begin s:=s+inputelement.value+' '; if inputelement.checked then s:=s+'is checked'+#13#10 else s:=s+''+#13#10; end; end; end; ShowMessage(s); end; end. http://data.cod.ru/78789 ссылка жива 3 дня!!! Пишу программы за еду. __________________ |
#3
|
|||
|
|||
спасибо, дружище, 2 дня ищу варианты, ничего похожего не находил
|