Текущий архив: 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