11.08.2013, Vladimír Klaus, navštíveno 4226x

Delphi
Internet

Občas je potřeba nastavit zaměření (focus) na nějakou komponentu, aniž bych na ni klikal. V případě běžných komponent je to snadné (metoda SetFocus), ale WB opět vyžaduje speciální zacházení.

Aby to šlo přeložit, musíte mít „uses ActiveX“.

with WebBrowser1 do begin
  if Document <> nil then begin
    with Application as IOleobject do begin
      DoVerb(OLEIVERB_UIACTIVATE, nil, WebBrowser1, 0, Handle, GetClientRect);
    end;
  end;
end;

A druhá metoda. Ta zase vyžaduje „uses MSHTML“.

if WebBrowser1.Document <> nil then begin
  (WebBrowser1.Document as IHTMLDocument2).ParentWindow.Focus;
end;

Malá aplikace ukazující práci s WB je zdarma ke stažení.