Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
15-1260478295
antonn
2009-12-10 23:51
2010.02.21
Определение ресурсоемких расчетов в методах


2-1260506010
Б
2009-12-11 07:33
2010.02.21
Изменение стиля и позиции окна при разных видеорежимах.


2-1261222865
yantux
2009-12-19 14:41
2010.02.21
Как работает знак := для рекордов?


2-1261394560
valussev@mail.ru
2009-12-21 14:22
2010.02.21
часть битмапа


4-1229186518
SCL
2008-12-13 19:41
2010.02.21
Как мне запретить завершение моего процесса из диспетчера задач?





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