-
zamanula (18.05.09 20:27) [0]Добрый день.
Такая проблема. В программе есть часть, которая через встроенный браузер (TWebBrowser) заполнят два поля формы 'логин' и 'пароль'. Всё посредством COM. С этим проблем нет. Делаю перебор по странице на наличие форм, потом перебор по форме на наличие компонентов и заполняю. Всё отлично.
Но никак не могу сделать так, чтобы выставить галочку в checkbox'e 'Запомнить меня' :(
Как это можно сделать? Буду признателей за помощь кодом ;) -
Сергей М. © (18.05.09 23:12) [1]500 WMR
-
Wadim005 (19.05.09 11:50) [2]Только позавчера это решил, дело в том, что у него может быть значение value а может и не быть, если его нет, то по умолчанию возвращает on
но это value как и в checkbox так и в radio понятие относительно, там главное атрибут checked
Вот рабочий пример, правда не для TWebBrowser а для IWebBrowser2
если ты для обычных type=text сделал для TWebBrowser то этот код переделаешь
procedure Tform1.SetDataValue(WB:IWebBrowser2; NameTag, SetValue:String);
var
iDoc: IHtmlDocument2;
i: integer;
ov: OleVariant;
iDisp: IDispatch;
iColl: IHTMLElementCollection;
iInputElement: IHTMLInputElement;
begin //
iDoc := (WB as IWebBrowser).Document as IHtmlDocument2;
if not assigned(iDoc) then
begin
// ShowMessage(' !!!??? Nothing dowloaded ... ');
// Exit;
end;
ov := 'INPUT';
IDisp := iDoc.all.tags(ov);
if assigned(IDisp) then
begin
IDisp.QueryInterface(IHTMLElementCollection, iColl);
if assigned(iColl) then
begin
for i := 1 to iColl.Get_length do
begin
iDisp := iColl.item(pred(i), 0);
iDisp.QueryInterface(IHTMLInputElement, iInputElement);
if assigned(iInputElement) then
begin
//=======ВОТ ЭТО ТО ЧТО ТЕБЕ НУЖНО!
//===НО ЭТО ЕЩЕ И ДЛЯ TYPE=RADIO, ТЕБЕ ТУТ НУЖНО ТОЛЬКО
//===УБРАТЬ ПРОВЕРКУ if (iInputElement.value=SetValue)
if iInputElement.Get_name = NameTag then begin //===ЭТО НАШ RADIO, ЕГО NAME
if (iInputElement.value=SetValue) then begin
iInputElement.Set_value(SetValue); //====МОЖЕТ И НЕ ОБЯЗАТЕЛЬНО, НЕ ПРОВЕРЯЛ
iInputElement.checked:=true; //====А ЭТО ЧЕКНЕТ ИМЕННО НУЖНЫЙ НАМ ЭЛЕМЕНТ
break;
end;
end;
end;
end;
end;
end;
end; -
RODELIM (24.09.09 20:14) [3]Здравствуйте zamanula!
Вы не могли бы прислать ту часть Вашего кода, которая опрашивает сначало формы, потом компаненты. Тоже столкнулся с проблемой заполнения Логина и Пароля! Спасибо! -
Айнур (03.02.10 18:55) [4]checked:=true;
вот это очень помогло =) спасибо =) минут 30 голову ломал =)