Форум: "Сети";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];
ВнизTWebBrowser - организовать preview html-кода Найти похожие ветки
← →
Real © (2008-06-04 21:22) [0]Вот есть такая необходимость: юзер заполняет поле (TMemo) текстом для сохранения в БД. Далее, этот текст будет доступен пользователям на сайте. То есть, при вводе разрешается использовать html-теги. Перед сохранением, заполняющий хочет увидеть превью своего текста. Нашел замечательный пример на сайте ДМ:
http://delphimaster.ru/articles/twebbrowser.html
Это работает, но с "некоторыми" недостатками: текст превышающий X символов игнорируется. Иногда - получаю ошибку "невозможно отобразить" страницу, иногда текст не обновляется, а выдается какая-то предыдущая версия. Все эти глюки - именно при тексте более X (под текстом в данном случае я понимаю значение параметра с кодом html, вместе с автоматически вставляемым <html> и </html>)
Здесь X - переменная величина, т.к. на проекте где нужно было внедрить эту фичу рубился текст более 339 символов, а на тестовом проекте для проверки этого бага - значение было 299
В режиме отладки, переменная в которой должен находиться текст из мемо - содержит просто какой-то мусор. Ниже две ссылки: на тестовый проект, где можно увидеть этот глюк и на скриншот где видно содержимое переменной (в режиме отладки) Разумеется, ничего подобного в мемо на тот момент не было: там был обычный текст
http://www.azlab.org/download/delphi/twebbrowser.rar
http://www.azlab.org/download/delphi/wb_bug.jpg
То ли я туплю, то ли статью надо с сайта убирать :) Надеюсь что я: уж очень хороший пример по краткости
← →
Real © (2008-06-06 02:21) [1]Гм, этот раздел никто не смотрит или никто не знает ответ? В потрепаловке наверное уже бы зафлудили основательно :)
← →
clickmaker © (2008-06-06 10:12) [2]а если так
HtmlText := WideString(HTML);
← →
Aokokty © (2008-06-06 18:47) [3]У меня таже проблема, пробовал http://delphimaster.ru/articles/twebbrowser.html вот эту штуку и та же ошибка, но нашел на сайте http://www.sources.ru вот это:
Вопрос: Как загрузить строковые данные в WebBrowser не прибегая к открытию файла?
Ответ: Загрузите строку массив Variant, а затем запишите в документ (Document):
...
var
v: Variant;
HTMLDocument: IHTMLDocument2;
begin
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := HTMLString; // Это Ваша HTML строка
HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
HTMLDocument.Close;
...
end;
Вобще то этот метод у меня тоже не работает, но возможно я его не правильно использую тк естествено поправил для своих нужд, если получится этот метод напиши плз свой вариант и используемые в юзес библиотеки
← →
Real © (2008-06-06 22:59) [4]
> а если так
> HtmlText := WideString(HTML);
Ничего не изменилось, те же глюки.
← →
Real © (2008-06-06 23:02) [5]
> нашел на сайте http://www.sources.ru вот это:
Да, я тоже нашел этот пример (только ленивые не скопипэстили его на сайт связанный по тематике с Delphi :) и он у меня не работает по той причине, что моя делфи ничего не знает о IHTMLDocument2
← →
Aokokty © (2008-06-07 08:13) [6]В юзес пропиши mshtml, должна узнать :), а вообще я использовал эти библиотеки:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, DBCtrls, ExtCtrls, ComCtrls, HTTPApp,
HTTPProd, CompProd, PagItems, MidProd, OleCtrls, SHDocVw, mshtml, ActiveX, ComObj;
хотя наверно и лишнего поприкручивал, но что такое IHTMLDocument2 Дельфи узнала, а ошибку выдает Access violation in adress... по этому и говорю что может у тебя получится, а у меня просто какой то косяк в проге...
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.122 c