Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Заполнение полей формы в TWebBrowser методом Drag-and-Drop

Delphi , Синтаксис , Drag and Drop

Заполнение полей формы в TWebBrowser методом Drag-and-Drop

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  This example shows how to fill out fields in your webbrowser by 
  dragging the content of Label1 to a field of your webbrowser}

 { 
  Mit diesem Beispiel kann der Inhalt von Label1 per Drag & Drop 
  in die Edit Felder gefullt werden. 
}


 procedure TForm1.FormCreate(Sender: TObject);
 begin
   label1.DragMode := dmAutomatic;
 end;


 procedure TForm1.WebBrowserDragOver(Sender, Source: TObject; X,
   Y: Integer; State: TDragState; var Accept: Boolean);
 var
   item: Variant;
 begin
   //check if document is interactive 
  if (Webbrowser.ReadyState and READYSTATE_INTERACTIVE) = 3 then
   begin
     item := WebBrowser.OleObject.Document.elementFromPoint(x, y);
     if Source is TLabel then
       Accept := True;
     Accept := (item.tagname = 'INPUT') and ((item.type = 'text') or
       (item.type = 'password')) or (item.tagname = 'TEXTAREA');
   end;
 end;

 procedure TForm1.WebBrowserDragDrop(Sender, Source: TObject; X,
   Y: Integer);
 var
   item: Variant;
 begin
   //check if document is interactive 
  if (Webbrowser.ReadyState and READYSTATE_INTERACTIVE) = 3 then
   begin
     item       := WebBrowser.OleObject.Document.elementFromPoint(x, y);
     item.Value := label1.Caption;
   end;
 end;

Пример использования функциональности Drag-and-Drop в компоненте TWebBrowser для заполнения полей формы.

Вот разбивка на что каждый процедура делает:

FormCreate

  • Устанавливает свойство DragMode для Label1 в значение dmAutomatic, что позволяет автоматически включать функциональность Drag-and-Drop для метки.

WebBrowserDragOver

  • Событие вызывается, когда мышка перемещается над веб-браузером при перетаскивании объекта (в этом случае TLabel).
  • Процедура проверяет, является ли документ интерактивным (READYSTATE_INTERACTIVE = 3), и если да, то:
    • Получает HTML-элемент на текущей позиции мыши с помощью elementFromPoint.
    • Проверяет, является ли источник объекта TLabel, и устанавливает Accept в True.
    • Дополнительно проверяет, является ли HTML-элемент полем ввода (тип 'text' или 'password') или текстовым областями, и устанавливает Accept в True, если это так.

WebBrowserDragDrop

  • Событие вызывается, когда перетаскивание операции завершается (т.е. пользователь отпускает кнопку мыши).
  • Процедура:
    • Проверяет, является ли документ интерактивным (READYSTATE_INTERACTIVE = 3), и если да, то:
    • Получает HTML-элемент на текущей позиции мыши с помощью elementFromPoint.
    • Устанавливает значение поля ввода или текстовой области в текст, отображаемый в Label1.

В целом, этот пример позволяет перетаскивать содержимое Label1 в поле формы (поле ввода или текстовая область) в веб-браузере. Процедуры обрабатывают операцию перетаскивания, проверяя, является ли документ интерактивным, и затем выполняют необходимые действия для заполнения полей форм.

Обратите внимание, что это код предполагает, что веб-браузер загружен HTML-страницой, содержащей поля ввода или текстовые области, а Label1 имеет настройку caption. Вам может потребоваться модифицировать код для соответствия вашей конкретной ситуации использования.

В статье описано, как заполнить поля формы в компоненте TWebBrowser Delphi методом Drag-and-Drop с помощью TLabel и DragOver/DragDrop событий.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Drag and Drop ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:18:22/0.0056841373443604/1