Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Автоматическое заполнение поля на сайте


Автор: Tanter 8.9.2013, 12:33
Всем доброго времени суток!
 На сайтах систему Ucoz есть возможность добавлять статьи, при добавлении статьи есть поля "Заголовок", "Краткое описание", "полный текст материала", "Теги" и т.д. Проблем с автоматическим заполнением "Заголовка", "Теги" не возникает, даже кнопку "Добавить" могу программно нажать.
  Заполнение происходит через компонент WebBrowser
  А проблема в "Краткое описание" и "Полный текст материала". В коде они, вроде как, таблицы и заполнить их не получается, подскажите, пожалуйста, как туда вставить текст из Memo.
 Посмотреть код странички добавления материала и потестировать добавление можно тут: http://scarystories.ucoz.ru/
 Но нужно зарегестрироваться, чтобы увидеть страничку. Или если лень, то воспользоваться этим:
 Логин: [email protected]
Пароль: 9td0ZcVf 
 
Для заполнения заголовка использовал вот такой код:

Код

procedure TForm2.Button3Click(Sender: TObject);
 var zag:variant;
begin
  zag:=webbrowser1.oleobject.document.getelementbyid('puF1');
  zag.value:= edit2.text;
  
end;

Автор: Illusion Dolphin 8.9.2013, 20:04
Цитата

Но нужно зарегестрироваться, чтобы увидеть страничку.

Дали бы для общественности логин-пароль готовый, а так лениво

Автор: Tanter 8.9.2013, 20:47
Цитата(Illusion Dolphin @ 8.9.2013,  20:04)
Цитата

Дали бы для общественности логин-пароль готовый, а так лениво

Логин: [email protected]
Пароль: 9td0ZcVf

Автор: Illusion Dolphin 8.9.2013, 21:05
Цитата

В коде они, вроде как, таблицы и заполнить их не получается

Они там как обычные <textarea> (id = brief, message) заполняйте их и будет счасте вам.

Добавлено @ 21:06
Цитата

zag.value:= edit2.text;

Тока в textarea вроде как заполняется не value а InnerHTML или InnerText 

Автор: Tanter 8.9.2013, 21:27
Illusion Dolphin, спасибо за ответ, но что-то не получается, вообще никак не получается. Можно Вас попросить сам кусок этого когда или, чтобы Вы его проверили, думаю,, не получится ничего. Там хитро надо обращаться.

Автор: Illusion Dolphin 8.9.2013, 22:01
Цитата

 но что-то не получается, вообще никак не получается. 

А что не получается?
  • Найти элемент?
  • Заполнить его?
  • Заполненный отправить и чтобы его сохранило?
  • Пройти валидацию?
Да и код ваш покажите если не трудно

Автор: Illusion Dolphin 8.9.2013, 23:13
Вот нашёл:
Код


procedure WB_SetTextAreaValue(Document: IDispatch; sID, sValue: string);
var
  Doc2: IHTMLDocument2;
  i: Integer;
  field: IHTMLElement;
  textarea: IHTMLTextAreaElement;
begin
   if Supports(Document, IHtmlDocument2, Doc2) then
    for i:= 0 to Doc2.all.length - 1 do
    begin
      field := Doc2.all.item(i, '') as IHTMLElement;
      if Assigned(field) then
      begin
        if (field.tagName = 'TEXTAREA') and (field.id = sID) then
        begin
          textarea := field as IHTMLTextAreaElement;
          if Assigned(textarea) then
          begin
            textarea.Value := sValue;
          end;
        end;
      end;
    end;
end;

  WB_SetTextAreaValue(Webbrowser1.Document, 'brief', 'Text value');

Автор: Tanter 9.9.2013, 07:33
Illusion Dolphin, Ваша подпись на форуме про меня...
 У меня не получается его заполнить, id, вроде, его беру. 
 В Вашем коде ругается на строчку: 
Код

if Supports(Document, IHtmlDocument2, Doc2) then


 И пытался найти вот этот оператор(или что это), Supports... В инете пусто

 У меня к Вам предложение) Напишите код со всеми Id и работающим заполнением, а я в долгу не останусь) WebMoney же есть у Вас?

Автор: Illusion Dolphin 9.9.2013, 08:07
Код

uses
  MSHTML

Забыл добавить

Цитата

 В Вашем коде ругается на строчку: 

А какое сообщение компилятора?

Автор: Tanter 9.9.2013, 11:46
Illusion Dolphin, написал в личку, а данный пример использует нестандартные компоненты(

Автор: Illusion Dolphin 9.9.2013, 12:37
Цитата

 а данный пример использует нестандартные компоненты( 

Какие?  smile 

Автор: Tanter 9.9.2013, 12:54
Библиотека Vcl. Вообще при попытке запуска сразу ругается на:
Код

Vcl.Forms,
  Unit9 in 'Unit9.pas' {Form9};

Автор: Illusion Dolphin 9.9.2013, 13:17
Цитата

Библиотека Vcl.

Когда она стала сторонней? smile)) Если делфи старый то префиксы надо удалить.

Автор: Tanter 9.9.2013, 13:19
Illusion Dolphin, можно тебя в аське увидеть?) Авторизуй меня) 

Автор: Tanter 9.9.2013, 13:40
 Удалил префиксы, поменял все, запустилось, но не заполняется((( У Вас работала?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)