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

Вниз

показ html текста ..   Найти похожие ветки 

 
Олег Лаукарт   (2002-05-11 14:44) [0]

Подскажите, можно ли показать HTML документ, который сформирован в памяти? Нужно показать HTML-представление результата без сохранения в файл. Сейчас делаю примерно так:
procedure P (Stream:TStringStream); //есть HTML
var f,v:Olevariant;
begin
Browser := TWebBrowser.Create(nil);
with TStringList.Create do
try
LoadFromStream (Stream);
SaveToFile (FileName);
f := navOpenInNewWindow;
v:=null;
Browser.Navigate (FileName,f,v);
finally
Free;
Browser.Free;
end;
end;


 
Ra   (2002-05-12 12:04) [1]

кажется отображать html из памяти умеет tHTMLViewer искать на torry


 
lipskiy   (2002-05-12 17:02) [2]

http://delphibase.endimus.com/?action=viewfunc&topic=netbrowse&index=1


 
Олег Лаукарт   (2002-05-14 12:45) [3]

для lipskiy:
спасибо, но у меня не получилось воспользоваться примером. Делаю так

var
WB:TWebBrowser_V1;
begin
WB:=TWebBrowser_V1.Create(nil);
try TextToWebBrowser("<h1>Header</h1><p>Text</p>", WB);
finally WB.Free;
end;

в результате ничего не получаю.
Если меняю в TextToWebBrowser следующую строку
if WB.Document = nil then WB.Navigate("about:blank");
на
var f,v:Olevariant;
...
f := navOpenInNewWindow; v:=null;
if WB.Document = nil then WB.Navigate("about:blank",f,v);

то вижу пустое окно браузера, но без указанного мною HTML.
В обоих случаях приложению наступают "кранты" - попап-меню перестают работать и проч. при закрытии - Access violation...

В чем ошибка использования примера?


 
Олег Лаукарт   (2002-05-14 12:46) [4]

Информация на всякий случай: D6,U1,NT.


 
Дмитрий Баранов   (2002-05-14 13:26) [5]

Вроде как надо импортировать библиотеку MSHTML.tlb, а потом поковыряться с интерфейсами (IHTMLDocument -> IHTMLBodyElement). Я с ним не работал, но нашел у себя интерфейс DispHTMLBody, у которого обнаружено св-во innerHTML. Поэкспериментируйте.


 
Дмитрий Баранов   (2002-05-14 13:49) [6]

Все гениальное просто. Вот и самому пригодилось.

procedure TForm1.Button1Click(Sender: TObject);
var CoBody: CoHTMLBody;
Body: DispHTMLBody;
Document: IDispatch;
Cod: CoHTMLDocument;
d : DispHTMLDocument;
b : IHTMLElement;
begin
CoInitializeEx(nil, COINIT_MULTITHREADED);
WB.Navigate("about:blank");
OleCheck(WB.Document.QueryInterface(IID_IHTMLDocument, d));
d.write("<h1>Hello world</h1>");
end;

Ну, ес-но, надо корректней все оформить :)


 
Олег Лаукарт   (2002-05-15 13:13) [7]

протестируем ... :) спасибо


 
Олег Лаукарт   (2002-05-15 13:20) [8]

Откуда CoInitializeEx? в каком модуле описан?


 
Дмитрий Баранов   (2002-05-15 13:27) [9]

То ли ComObj, то ли ActiveX ... Только вызов этой ф. надо производить в initialize, или на крайний случай в Form.Create
А вообще она излишество, если поток один - достаточно вызова CoInitialize.


 
Filat   (2002-05-15 16:09) [10]

А почему бы вопросик в Фак не засунуть, очччень интересный:))) ?


 
hooky-mars   (2002-05-15 17:31) [11]

мона сохранить текст в файлик во временной папке и отабразить его так:
....
WebBrowser1.Navigate("Путь к файлу");

А по окончании уничтожить файлик


 
Олег Лаукарт   (2002-05-15 18:52) [12]

Можно и временный файл использовать. Его можна удалить сразу после WebBrowser1.Navigate("Путь к файлу"); - браузеру это не помешает. Но ради чего создавать файл? Это нагрузка на ресурсы системы и усложнение логики. Ради чего? Есть ли причина?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
1-88543
maxim2
2002-05-16 13:15
2002.05.27
Как в Edit сделать маску ввода?


1-88542
Darlok
2002-05-16 13:02
2002.05.27
Как правильно работать с прозрачными окнами?


3-88374
Maloy
2002-05-03 00:22
2002.05.27
Неподдерживаемая операция


3-88332
MaXie
2002-04-30 11:51
2002.05.27
Update ODBC -> смерть клиенту!


14-88594
Архипов
2002-04-18 09:53
2002.05.27
О возможности отправления электронных сообщений





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