Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.21;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
15-1260792929
@!!ex
2009-12-14 15:15
2010.02.21
Помогите собрать "велосипед"(компилятор)


15-1260749938
Kerk
2009-12-14 03:18
2010.02.21
Ленин в мозгах поколения ЕГЭ


15-1260171051
12
2009-12-07 10:30
2010.02.21
Нашел книгу по администрированию MSSQL


2-1261399078
webpauk
2009-12-21 15:37
2010.02.21
Получить значение поля предидущей записи в DBGrid


2-1261250556
POOP
2009-12-19 22:22
2010.02.21
Помогите, пожалуйста с префиксной формой...