Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по TWebBrowser   Найти похожие ветки 

 
dmitry kholl   (2006-09-14 12:23) [0]

Подскажите способ управлят позиционированием (прокруткой) данных на страничке.
У меня в браузере загружены локальные данные в компонент, и при добавлении новых страничка формируется заново. Так вот хотелось что бы я мог ее прокрутить до новых данных.


 
dmitry kholl   (2006-09-14 12:29) [1]

И еще вопрос.

Посоветуйте к-н не глючный редактор на основе HTMLEdit(или другом). Можно платный.


 
palva ©   (2006-09-14 13:41) [2]

Проще всего поставить на страничку якорь <A HREF="#nn"></A>
А к урлу который передается функции Navigate приписать "#nn" и страничка должна прокрутиться так, чтобы якорь находился в окне браузера. Можно прокрутить принудительно вниз и влево, но это вы должны знать на сколько пикселей.


 
dmitry kholl   (2006-09-14 14:12) [3]

А как програмно перейти к этому якорю?


 
palva ©   (2006-09-14 14:26) [4]

Был неправ, надо использовать не HREF, а NAME. Т. е. пусть у нас есть файл rrrr.htm

<HTML><HEAD></HEAD<BODY>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0<br>
<A NAME="#01"></A>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0<br>
<A NAME="#02"></A>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0<br>
</BODY></HTML>

Тогда можно так:

procedure TForm1.FormCreate(Sender: TObject);
begin
 WebBrowser1.Navigate("D:\C\pascal\rrrr.htm");
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 WebBrowser1.Navigate("D:\C\pascal\rrrr.htm#01");
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 WebBrowser1.Navigate("D:\C\pascal\rrrr.htm#02");
end;


 
dmitry kholl   (2006-09-14 14:38) [5]

Спасибо за ответ.

Но я загружаю HTML непосредственно в компонент (без файла).

procedure LoadBrowser(ABrowser: TWebBrowser; const AHTML: String = ""; AUTONAVIGATE: Boolean = FALSE);
var
 Document: IHTMLDocument2;
 V: OleVariant;
begin
 if AUTONAVIGATE then ABrowser.Navigate("about:blank");

 Document := ABrowser.Document as IHtmlDocument2;
 V := VarArrayCreate([0, 0], varVariant);

 V[0] := AHTML;

 Document.Write(PSafeArray(TVarData(v).VArray));
 Document.Close;
end;

Как в этом случае выполнить метод Navigate?


 
palva ©   (2006-09-14 14:47) [6]


procedure TForm1.Button2Click(Sender: TObject);
begin
 (WebBrowser1.Document as IHTMLDocument2).url := "#02";
end;


 
dmitry kholl   (2006-09-14 14:48) [7]

большое спасибо


 
palva ©   (2006-09-14 15:43) [8]

palva ©   (14.09.06 14:47) [6]
Что-то таким образом не работает. Подумаю еще.


 
palva ©   (2006-09-14 16:09) [9]

Вот так работает:
procedure TForm1.Button2Click(Sender: TObject);
var hl:IHTMLLocation;
 d: IHTMLDocument2;
 e: IHTMLElement;
begin
 d := WebBrowser1.Document as IHTMLDocument2;
 e := d.anchors.item("#02", 0) as IHTMLElement;
 e.scrollIntoView(true);
end;

Наверно, это будет работать для обеспечения видимости любого элемента, а не только якоря.


 
palva ©   (2006-09-14 16:14) [10]

Логический аргумент метода scrollIntoView() определяет, появится ли элемент вверху (true) или внизу (false) окна.


 
dmitry kholl   (2006-09-14 16:26) [11]

Большое спасибо. У меня получилось.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.046 c
2-1159512427
aht
2006-09-29 10:47
2006.10.22
Удаление строки в StringGrid


3-1156448842
Рустем
2006-08-24 23:47
2006.10.22
Проблема с триггером в MySQL...


3-1156168884
Bless
2006-08-21 18:01
2006.10.22
ADO и обрыв соединения с SQL-сервером


2-1159950119
pavel_guzhanov
2006-10-04 12:21
2006.10.22
Можно ли из программы, написанной на Delphi, и работающей под


15-1159279755
Oldman
2006-09-26 18:09
2006.10.22
Вернемся таки к "Дозорам"...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский