Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Вниз

Аццкий рефрешь в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.013 c
1-1142429031
DelphiLexx
2006-03-15 16:23
2006.04.23
Запрет ввода символа для Memo


1-1142524876
oleg_
2006-03-16 19:01
2006.04.23
Если parent у checkboxa не форма а stringgrid, то он не кликается


2-1144402787
Lera
2006-04-07 13:39
2006.04.23
Приложения


15-1143303124
antonn
2006-03-25 19:12
2006.04.23
незабудьте перевести часы...


15-1143699353
Desdechado
2006-03-30 10:15
2006.04.23
Адресная фантазия





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