Форум: "Сети";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
ВнизЗаполняем форму Twebbrowseroм Найти похожие ветки
← →
Pimin (2002-01-18 03:08) [0]Уважаемые подскажите рабочий пример, как заполнить twebbrowser-ом простую формочку на странице скажем два поля и нажать на кнопочку, что бы передать эти значения скрипту. С дельфи никогда не сталкивался, а код этот очень нужен, буду очень благодарен.
← →
ctapik-net (2002-01-18 13:43) [1]Пример врядли найдешь, а вот подтолкнуть пожалуйста. Тебе надо привести WebBrowser.Document к интерфейсу IHTMLDocument2 Interface. Делается с помощью QueryInterface. Далее читаешь MSDN по IHTMLDocument2. Потом используя IHTMLDocument2 и IHTMLElementCollection Interface, IHTMLInputElement Interface, IHTMLSelectElement Interface, IHTMLTextAreaElement Interface сможешь поменять все что душе угодно. Только писать под Дельфи эту фигню замучиешся, т.к. он некоторые интерфейсы не поддерживает. ИМХО Builder - то что нужно.
← →
nikkie (2002-01-18 13:59) [2]ИМХО на дельфи пишутся такие вещи гораздо проще, чем C++ (специфику билдера не знаю, могу сравнивать только с VC++). на дельфи QueryInterface и не нужен - все делается просто приведением типа (WebBrwoser.Document as IHTMLDocument2).
>Дельфи ... некоторые интерфейсы не поддерживает
вот это неправда. такое просто невозможно.
в остальном согласен с ctapik-net - надо в документе найти поля ввода, выставить им значения и нажать на submit.
ЗЫ задача имеет решение и без использования webbrowser, а просто с помощью отправки HTTP-запроса. так, имхо, разумней и легче
← →
Pimin (2002-01-18 14:09) [3]Нарыл где то такой вариант...пробывал работает...правда возник глупейший вопрос, но никак не могу сообразить в чем тут дело. Короче в strPostData мы указываем переменные которые передаются скрипту...а как сделать чтобы дынные прали из например Tedit? Если пишу strPostData := "FIRSTNAME=Tedit1.text&...то не получается передаются не значение из полей а просто текст Tedit1.text...может я что-то не так делаю?
procedure TForm1.SubmitPostForm;
var
strPostData: string;
Data: Pointer;
URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
strPostData := "FIRSTNAME=Hans&LASTNAME=Gulo&NOTE=thats+it";
PostData := VarArrayCreate([0, Length(strPostData) - 1], varByte);
Data := VarArrayLock(PostData);
try
Move(strPostData[1], Data^, Length(strPostData));
finally
VarArrayUnlock(PostData);
end;
URL := " http://127.0.0.1/cgi-bin/register.pl";
Flags := EmptyParam;
TargetFrameName := EmptyParam;
Headers := EmptyParam;
WebBrowser1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
end;
← →
eblade (2002-01-18 14:27) [4]"FIRSTNAME=" + Tedit1.text + "&...
← →
Yuraz (2002-01-19 10:56) [5]Люди, если не сложно, то же самое бы с NMHTTP кто написал...
← →
Yuraz (2002-01-19 11:20) [6]Делаю вот так, не прокатывает:
NMHTTP1.InputFileMode := FALSE;
NMHTTP1.OutputFileMode := FALSE;
strPostData:="action=" + Edit5.Text + "&"+ "cat=" + Edit14.Text + "&"+ "names=" + Edit6.Text + "&"+ "sity=" + Edit7.Text + "&"+ "adres=" + Edit8.Text + "&"+ "text=" + Edit13.Text ;
NMHTTP1.Post(Edit2.Text, strPostData);
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c