Вверх ↑
Ответов: 321
Рейтинг: 10
#1: 2017-09-26 20:13:19 ЛС | профиль | цитата
3042, спасибо большое за наводку. Вот он, тот самый момент когда строчки, не кубики hiasm
3042, если осталось в голове что-то и если не трудно, поправь пожалуйста точки.

У меня 5 FieldName:
Account[username]
Account[password]
Account[password2]
Account[email]
Account[captcha_result]

Из них - 2 поля паролей статические (на них не обязательно выводить data-точки, можно внутри оставить), остальные динамические. То есть как я понимаю нужно...
Нужно добавить data-точки, это вроде легко. И добавить еще строк))
  begin
FormItem := PKOLWebBrowser(wb).OleObject.Document.forms.Item(i);
for k:=0 to FormItem.length-1 do
if FormItem.Item(k).Name = ToStringEvent(FieldName1) then FormItem.Item(k).Value := ToStringEvent(FieldValue1);
if FormItem.Item(k).Name = ToStringEvent(FieldName2) then FormItem.Item(k).Value := ToStringEvent(FieldValue2);
if FormItem.Item(k).Name = ToStringEvent(FieldName3) then FormItem.Item(k).Value := ToStringEvent(FieldValue3);
if FormItem.Item(k).Name = ToStringEvent(FieldName4) then FormItem.Item(k).Value := ToStringEvent(FieldValue4);
if FormItem.Item(k).Name = ToStringEvent(FieldName5) then FormItem.Item(k).Value := ToStringEvent(FieldValue5);
end;
Первое поле заполняется, далее runtime ошибка и программа вылетает...

--- Добавлено в 2017-09-26 20:19:00

Еще интересно следующее, это получается Delphi ?! Какой синтаксис выбирать в notepad++ ?!
Выбираю pascal и становиться что-то более не менее понятно, это насколько помню почти одно и тоже.
_______________________________________
Кликаем по кнопке
unit HiAsmUnit;

interface

uses kol,Share,Debug,KOLSHDocVw;

type
THiAsmClass = class(TDebug)
private
wb:PControl;
public
h:THI_Event;
FieldID:THI_Event;
FieldValue:THI_Event;

procedure doSet(var dt:TData; index:word);

end;

implementation

type
TKOLWebBrowser = PWebBrowser;
PKOLWebBrowser = PWebBrowser;

procedure THiAsmClass.doSet;
var i,k:integer;
FormItem:Variant;
begin
if not assigned (wb) then wb := PControl(ToIntegerEvent(h));
if PKOLWebBrowser(wb).OleObject.Document.all.tags('FORM').Length = 0 then exit;
for i:=0 to PKOLWebBrowser(wb).OleObject.Document.forms.Length-1 do
begin
FormItem := PKOLWebBrowser(wb).OleObject.Document.forms.Item(i);
for k:=0 to FormItem.length-1 do
if FormItem.Item(k).id = ToStringEvent(FieldID) then begin FormItem.Item(k).click end;
end;
end;

end.

_______________________________________
Меняем поле input
unit HiAsmUnit;

interface

uses kol,Share,Debug,KOLSHDocVw;

type
THiAsmClass = class(TDebug)
private
wb:PControl;
public
h:THI_Event;
FieldName:THI_Event;
FieldValue:THI_Event;

procedure doSet(var dt:TData; index:word);

end;

implementation

type
TKOLWebBrowser = PWebBrowser;
PKOLWebBrowser = PWebBrowser;

procedure THiAsmClass.doSet;
var i,k:integer;
FormItem:Variant;
begin
if not assigned (wb) then wb := PControl(ToIntegerEvent(h));
if PKOLWebBrowser(wb).OleObject.Document.all.tags('FORM').Length = 0 then exit;
for i:=0 to PKOLWebBrowser(wb).OleObject.Document.forms.Length-1 do
begin
FormItem := PKOLWebBrowser(wb).OleObject.Document.forms.Item(i);
for k:=0 to FormItem.length-1 do
if FormItem.Item(k).Name = ToStringEvent(FieldName) then FormItem.Item(k).Value := ToStringEvent(FieldValue);
end;
end;

end.

2 примера и в них всего 1 строка различается
Нужны комментарии =(
_______________________________________
Столько примеров в интернете все темы 2000х годов, видимо Delphi реально умирает, или это никому не нужно...
_______________________________________
if not assigned (wb) then wb := PControl(ToIntegerEvent(h)); //(*если документ получен*)
нашел только 1 комментарий к этой строке (правда какой документ и кем получен не понятно) и понял что такое THI_Event :oops:
карма: 1

0
Редактировалось 8 раз(а), последний 2017-09-26 20:50:07