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

Материал из DRKB

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

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

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;


Source: Взято с сайта: http://www.swissdelphicenter.ch
ID: 00713