Delphi Webbrowser scrollIntoView (true) не работает

я пытаюсь найти текст в веб-браузере с Delphi 2010 и прокручивать его.  од находит текст и прокручивает его, но текст остаетс¤ в нижней части webview (в последней строке). я хотел бы показать текст в верхней (первой строке) веб-просмотра.

я думаю, что дл¤ этого кода будет ЂscrollIntoView (true)ї, но это совсем не вли¤ет на то, что ¤ пытаюсь сделать.

„то мне делать? Ѕлагодарю. ¬от мой код

procedure TForm1.SpeedButton10Click(Sender: TObject);
var
    doc: IHTMLDocument2;
    selection: IHTMLSelectionObject;
    textRange: IHtmlTxtRange;
    scrollpos: Integer;
    Art : string;
begin

Doc := WebBrowser1.Document as IHTMLDocument2;
Selection := Doc.Selection;
TextRange := selection.createRange as IHTMLTxtRange;

Art := edit2.Text;

TextRange.collapse(false);
if TextRange.findText(Art) then
begin
TextRange.select;
TextRange.scrollIntoView(true);

 end;
end;

delphi,scroll,twebbrowser,

0

Ответов: 1


2 прин¤т

я тоже не мог TextRange.scrollIntoView(True)работать. ќднако приведенный ниже код, похоже, работает дл¤ документа формата

Line1
Line2
Line3
Line4
line5
...
Ћини¤ 100

если документ не прокручиваетс¤ до точки, котора¤ Line100находитс¤ выше нижней строки в окне браузера. ќн отлично работает, fi, чтобы найти Line20и расположить его в верхней части окна браузера.

 ак вы можете видеть, он работает, получа¤ IHTMLTextRangeMetricsинтерфейс от TextRangeи использу¤ его offsetTopсвойство дл¤ прокрутки doc2родительского окна по вертикали.

 од:

//  doc2 is a field of Form1 of type `IHTMLDocument2`
procedure TForm1.FindText(Text : String);
var
  selection: IHTMLSelectionObject;
  textRange: IHtmlTxtRange;
  scrollpos: Integer;
  Metrics : IHTMLTextRangeMetrics;
begin

  Selection := Doc2.Selection;
  TextRange := selection.createRange as IHTMLTxtRange;

  TextRange.collapse(false);
  if TextRange.findText(Text, 1, 0) then begin
    TextRange.select;
    TextRange.scrollIntoView(True);
    TextRange.QueryInterface(IHTMLTextRangeMetrics, Metrics);
    if Metrics <> Nil then
      doc2.parentWindow.scrollBy(0, Metrics.offsetTop);
  end;
end;
ƒельфы, свиток, TWebBrowser,