Главная страница
    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
2-1144403565
fast2
2006-04-07 13:52
2006.04.23
Как "выкинуть" из списка Tab Order... определенный компонент?


2-1144405420
Sesh
2006-04-07 14:23
2006.04.23
Управление сторонним приложением


2-1144574333
STK
2006-04-09 13:18
2006.04.23
Ошибка с типом и масивом, что не пойму


1-1142584661
alles
2006-03-17 11:37
2006.04.23
Вопрос по array of ...


15-1144123122
Anatolik_
2006-04-04 07:58
2006.04.23
Доброго времени суток, Уважаемые! есть ключ реестра LicenseInfo





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