Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > HTML интерпретатор


Автор: Mephisto 23.1.2007, 16:02
Луди, есть ли в делфине компонент который может отобразить html страничку?
На входе в него должен быть string с html кодом. smile 

Автор: December 23.1.2007, 16:11
Из стандартных - TWebBrowser
DRKB

Автор: Romikgy 23.1.2007, 16:19
http://www.torry.net/pages.php?id=650
Цитата

HTML Form v.1.0    FWS  261 k  15 Apr 2004
By Zhong Wan. A sample to show how to write a HTML form, while using this way, you can write a beautiful interface for application which will using HTLM pages.
 
Fully functional
Source: Included
Exe-Demo Included
Download: D7

http://www.torry.net/pages.php?id=216
Цитата

ThtmlLite v.7.7    FW  930 k  17 Jun 2006
By Dave Baldwin. ThtmlLite is similar to the Professional ThtmlViewer, TFrameViewer and TFrameBrowser components but has reduced capabilities. It is designed for applications where the full capabilities are not needed. There is no charge for its use and it may be modified if desired.

ThtmlLite does not support Frames or the printing of HTML documents. Imaging capablilities include GIF, animated GIF, JPEG, and bitmap.
 
Fully functional
Source: None
Download: D2005 D2006 D3 D4 D5 D6 D7

http://www.torry.net/pages.php?id=129
Цитата

TMS THTMLStaticText v.1.2.0.0    SW  2603 k  11 Jul 2006
By TMS Software. A label with HTML formatting capabilities. Supports a subset of the HTML formatting tags (see the mini HTML reference). Included support for bevel borders, events for anchor clicks, hovering, keyboard interface for anchors, blinking text, GIF, JPEG, ICO, BMP, WMF, imagelist images, mini scrollbar, various autosizing styles and a HTML property editor ...
 
Fully functional
Source: None
Download: CB2k6 CB5 CB6 D2005 D2006 D5 D6 D7

может чет и подойдет

Автор: Mephisto 23.1.2007, 17:18
Вот, нашел в DRKB, но не могу понять почему не работает.  smile 

Код
var
  Ahtml : string;
  HTMLDoc : IHtmlDocument2;
  VOle    : OleVariant;
begin
    Ahtml := 'тут HTML код';
    HTMLDoc := WebBrowser1.Document as IHtmlDocument2;

    VOle    := VarArrayCreate([0, 0], varVariant);
    VOle[0] := Ahtml;
    HTMLDoc.write(PSafeArray(TVarData(VOle).VArray));
    HTMLDoc.close;
end;

Автор: Romikgy 23.1.2007, 17:20
а 
Цитата(Mephisto @  23.1.2007,  16:18 Найти цитируемый пост)
WebBrowser1

на форму кинул?

Автор: Mephisto 23.1.2007, 17:33
Цитата(Romikgy @  23.1.2007,  18:20 Найти цитируемый пост)
на форму кинул? 

Есть такой!  smile 

Автор: December 23.1.2007, 17:36
А теперь тему в ActiveX, пожалуйста smile

Автор: CatATonik 23.1.2007, 17:37
Надо сначала Navigate сделать, куданибудь (about:blank например), тогда Document появится, изначально он nil

Автор: Mephisto 23.1.2007, 17:53
Утечка памяти. smile 
Если ставлю exit перед тем кодом что привел то нет, а если код исполняется, то есть утечка. smile

Автор: CatATonik 23.1.2007, 17:54
HTMLDoc := nil;

Автор: aktuba 23.1.2007, 18:02
Цитата

VOle    := VarArrayCreate([0, 0], varVariant);


эта строка создает массив. дальше понятно?

Автор: Mephisto 23.1.2007, 18:10
Цитата(CatATonik @  23.1.2007,  18:54 Найти цитируемый пост)
HTMLDoc := nil; 

Эт понятно. Не помогло.
Цитата(aktuba @  23.1.2007,  19:02 Найти цитируемый пост)
эта строка создает массив. дальше понятно? 

А как его убить??  smile 

Автор: aktuba 23.1.2007, 18:52
Код

SetLength(VOle, 0);


Должно помочь...

Автор: Mephisto 24.1.2007, 10:22
aktuba, 
Цитата

[Error] Main.pas(101): Constant object cannot be passed as var parameter


Добавлено @ 10:36 
Даже если так написать, то утечка
Код
VarArrayRedim(VOle, 0);

Автор: Romikgy 24.1.2007, 11:06
а мож утечка в другом месте?
Цитата(Mephisto @  23.1.2007,  16:18 Найти цитируемый пост)
var
  Ahtml : string;
  HTMLDoc : IHtmlDocument2;
  VOle    : OleVariant;
begin
    Ahtml := 'тут HTML код';
    HTMLDoc := WebBrowser1.Document as IHtmlDocument2;
    VOle    := VarArrayCreate([0, 0], varVariant);
    VOle[0] := Ahtml;
    HTMLDoc.write(PSafeArray(TVarData(VOle).VArray));
    HTMLDoc.close;
end;

ибо после выхода из процедуры, переменная разрушается, имхо, и массив дестроится (ибо он локален)

Автор: CatATonik 24.1.2007, 11:10
Мне тоже так кажется, а может и нет ее, чем утечки-то смотрим? MemCheck?

Автор: Mephisto 24.1.2007, 11:26
Цитата(Romikgy @  24.1.2007,  12:06 Найти цитируемый пост)
ибо после выхода из процедуры, переменная разрушается, имхо, и массив дестроится (ибо он локален) 

Да я тоже так думал. smile
Если в начале процедуры поставить exit, то никакой утечки нет. Все отлично работает. 
Цитата(CatATonik @  24.1.2007,  12:10 Найти цитируемый пост)
чем утечки-то смотрим

использую корпоративные загогулины... Используются несколько лет, никаких проблем до этого небыло!

После выгрузки сделал небольшую паузу, утечка не обнаружена. Похоже он через некоторое время выгрузилсо... Нифига не могу понять. smile 
Ну и ладно... 
;) Пасип всем... ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)