Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение TEXTAREA в html-документе в webrowser 
:(
    Опции темы
Wowa
Дата 17.9.2002, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Что-то я измучался и не могу найти решение.

Есть Webbrowser. В него загружается хтмл-документ с формой.
В этой форме есть объекты разные.
Когда мы пытаемся заполнить: <INPUT name=count .... - то все Ок.
При заполнении используем нижеприведенный код:

Код

iDoc:IHtmlDocument2;
    i:integer;
    ov:OleVariant;
    iDisp: IDispatch;
    iColl:IHTMLElementCollection;
    iText:IHTMLInputTextElement;
    iInputElement:IHTMLInputElement;


Код

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
          if iInputElement.Get_name='number'
          then iInputElement.Set_value('Ihor');
          if iInputElement.Get_name='message'
          then iInputElement.Set_value('PASSWORD');
        end;
      end;
    end;
  end;


Но, когда требуется заполнить <TEXTARE...>, то заполнение не происходит.
Видимо надо обращаться как-то так: IHTMLTextAreaElement или IHTMLInputTextElement или еще как-то. (см. http://deep.kiev.ua/~netlib/js/ms/installe/help/ind09007.htm
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=12953)

Как я не пробовал - ничего не получалось. Может быть кто-то сталкивался с этим?


PM WWW   Вверх
Wowa
Дата 21.9.2002, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Ладно, пришлось все таки использовать компонент: EmbeddedWb
http://www.euromind.com/iedelphi/embeddedwb.htm

Там это делается легко: WebBrowser1.oleobject.document.forms.item(0).elements.item(2).value:='любой текст';


PM WWW   Вверх
_ES_
Дата 11.12.2002, 05:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 11.12.2002
Где: Odessa

Репутация: нет
Всего: нет



Цитата(Admin @ 21.9.2002, 15:16)
Ладно, пришлось все таки использовать компонент: EmbeddedWb
...
Там это делается легко: WebBrowser1.oleobject.document.forms.item(0).elements.item(2).value:='любой текст';

[QUOTE]

Ага, это если тебе известно, в какую именно форму писать. А не подскажешь ли, как писать в активный элемент (под фокусом) активной формы (заранее неизвестно ничего - ни сколько форм, ни какой элемент активен)? Не хочу писать это отдельным вопросом, сомневаюсь что многие с этим сталкивались... А раз ты столкнулся - не подскажешь ли? :)

И еще вопрос - как в TWebBrowser или TEmbeddedWB менять кодировку, в которой отображается страничка??? Нигде не нашел ответа.

Заранее спасибо.
PM MAIL ICQ   Вверх
Unregistered
Дата 13.7.2003, 20:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











я вообще ничего в этом не понимаю, но вот какой пример я нашел, может вам будет полезно
вроде как заполяняет элементы форм по именам этих элементов, но у меня почему-то не стал работать этот пример, может проясните как его переделать чтобы работал

procedure TForm1.Button2Click(Sender: TObject);
var
i, j: Integer;
FormItem: Variant;
Result: boolean;
Fieldname, value: string;
begin
Result := False;
fieldname:= 'url';
value:= 'blabla';
//no form on document
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
begin
Exit;
end;
//count forms on document
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
try
//when the fieldname is found, try to fill out
if FormItem.Item(j).Name = FieldName then
begin
FormItem.Item(j).Value := Value;
Result := True;
end;
except
Exit;
end;
end;
end;
end;
  Вверх
stab
Дата 13.7.2003, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 14
Всего: 48



Цитата
А не подскажешь ли, как писать в активный элемент (под фокусом) активной формы (заранее неизвестно ничего - ни сколько форм, ни какой элемент активен)?


поищи в MSDN про ActiveElement, кажется это свойство IHTMLDocument2


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Скив
Дата 15.7.2004, 15:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Там это делается легко: WebBrowser1.oleobject.document.forms.item(0).elements.item(2).value:='любой текст';

набрёл на эту тему.
Я дико извиняюсь. А что должно стоять вместо item(0) и item(2)?
И где вставлять название Textarea
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0819 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.