Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: CL | DM;

Вниз

Аццкий рефрешь в TWebBrowser   Найти похожие ветки 

 
TwinGL   (2006-04-08 13:57) [0]

День добрый.

Вообщем я занялся редким извратом - написанием клиента к чату натипа кроватки.
(Клиент на HTML нихрена не функционален т.к. афффтар поленился, но работа сервера меня впечатлила простотой и продуманностью одновременно)

Вообщем через сокеты отправляю, принимаю запросы и т.д.

Вывод сообщений я произвожу с помощью TWebBrowser дабы не потерять поддержку HTML тегов.
Беда в том, что я не могу дописать в конец страницы как это происходит в нормальном браузере.

Обычно это происходит так:
Сам браузер получает ответ от сервера мол "читай отсюда", и сервер выдаёт ему по мере поступления информации, а браузер соответственно по немногу подгружает страничку и  в результате это нормально смотрится. Мессаги дописываются в конец, и страничка помалу прокручивается.

Я же не могу сделать подобный финт ушами.
Я пишу обновления в переменную и каждый загружаю её содержимое заново в TWEBBrowser в следствии чего получается "аццкий рефреш". Т.е. у меня страница перерисовывается, потом еще и с самого верха перематывается в конец к последней мессаге (а когда мессаг сотня, то вообще начинает укачивать). Вообщем смотрится это всё ужастно.

Как это побороть ума не приложу =/.


 
Ketmar ©   (2006-04-08 23:19) [1]

добавлять так же, как это делает jscript. т.е. в объект документа. или сделать отображение "внизу самые старшие". %-)


 
TwinGL   (2006-04-08 23:35) [2]

Ну и как же предлагаецца добавлять как jscript? =/
Там никак кроме как через Navigate страничку не загрузишь. Подгрузить нет способа. Ну или я просто его не знаю. Если ты знаешь - то не молчи!


 
Ketmar ©   (2006-04-09 01:39) [3]

DOm Document object. I-какой-то-там. интерфейс можно получить у того самого TWebBrowser. более детально не помню -- не юзаю IE. я для клиента чата свой движок отображения делал. могу дать ссылку (клиент для чата мастаков, но ста-а-арый %-)

http://elite-mythology.sourceforge.net/TAKChat/

есть сырцы. считай, что клиент -- public domain.


 
Ketmar ©   (2006-04-09 01:41) [4]

кстати, там же есть ссылочка на клиент, построеный с IE.


 
TwinGL   (2006-04-09 11:50) [5]

(Модератор, начинающие с TWebBrowser не замудряются)

Решение проблемы:

Следующая процедура дополнит код TWebBrowser
procedure AppendText(WebBrowser:TWebBrowser; str:string);
var
 Range: IHTMLTxtRange;
begin
 Range := ((WebBrowser.Document as IHTMLDocument2).body as
   IHTMLBodyElement).createTextRange;
 Range.collapse(False);
 Range.pasteHTML(str);
end;

Опять же перед использованием необходимо хоть что-нибудь загрузить в компонент.
WebBrowser1.Navigate("about:check");


 
TwinGL   (2006-04-09 11:57) [6]

В uses добавить MSHTML


 
easy ©   (2006-04-09 22:12) [7]

procedure TForm1.FormCreate(Sender: TObject);
begin
 WebBrowser1.Navigate("about:blank");
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 WebBrowser1.OleObject.document.body.insertAdjacentHTML("BeforeEnd","<h3>Text</h3>");
end;



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

Текущий архив: 2006.04.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
2-1144400767
dera
2006-04-07 13:06
2006.04.23
Чем можна заменить?


9-1128284221
Ricks
2005-10-03 00:17
2006.04.23
Многопроходная отрисовка ландшафта


2-1144272382
in-tank
2006-04-06 01:26
2006.04.23
Как хранить данные для подсказок.


15-1143543460
Nikolay M.
2006-03-28 14:57
2006.04.23
Обещал разместить здесь предсобеседовательную задачку


3-1141232888
-Саша-
2006-03-01 20:08
2006.04.23
Создание БД в FireBird