Главная страница
    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.46 MB
Время: 0.012 c
11-1124694432
Fanny
2005-08-22 11:07
2006.04.23
Работаю с PIniFile


2-1144513418
FA
2006-04-08 20:23
2006.04.23
Динамические массивы в параметрах


1-1142802030
API
2006-03-20 00:00
2006.04.23
Отключение функции Ghost Window в Windows XP


2-1143984013
bogdan
2006-04-02 17:20
2006.04.23
задача на перебор


2-1144185516
ValliGRoB
2006-04-05 01:18
2006.04.23
OpenFile





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский