Главная страница
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.056 c
2-1144526652
Volf_555
2006-04-09 00:04
2006.04.23
Как из DLL выгрузить самого себя?


15-1143698298
Pazitron_Brain
2006-03-30 09:58
2006.04.23
Посоветуйте программу для создания фотогаллерей


2-1144641938
Rubey
2006-04-10 08:05
2006.04.23
Сравнение дат


2-1144338266
новенький
2006-04-06 19:44
2006.04.23
Как сделать переключение?


15-1144155290
LordOfRock
2006-04-04 16:54
2006.04.23
Тормоза при копировании с CD