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

Вниз

Вывод HTML файла на принтер   Найти похожие ветки 

 
ksu ©   (2002-10-09 13:28) [0]

для отображения файла HTML на форме использую Active X компонент TDHTMLED,который был импортирован стандартным образом. Загружаю через метод LoadURL файл, печатаю на принтере методом PrintDocument - все выполняется нормально. При выходе из программы или при методе Destroy или Free компоненты TDHTMLED выдается сообщение об ошибке " Access violation in module DHTMLED.OCX ...". Помогите в чем проблема - может его надо проинициализовать как-то, а потом освободить. Может кто подскажет другой способ печати через компоненту WEBBrowser - не могу найти как через эту компоненту послать на печать файл HTML.


 
Владимир Васильев ©   (2002-10-09 14:07) [1]

procedure TOutForm.DoCopy;
var
A,B : OleVariant;
//Doc : IHTMLDocument2;
rng : IHTMLTxtRange;
Sel : IHTMLSelectionObject;

//TxtList : TStringList;
//SelTxt : WideString;
//Prn : System.Text;
//i : integer;

IECommand : IOleCommandTarget;

MaxBuff : integer;
begin
MaxBuff:=10240;

//Doc := WebBrowser1.Document as IHTMLDocument2;
if Doc=(nil) then
begin
//ShowMessage("Doc Not Loaded");
Exit;
end;

Sel:=Doc.selection as IHTMLSelectionObject;
rng:=Sel.createRange as IHTMLTxtRange;

if Length(rng.text)>MaxBuff then
begin
rng.collapse(true);
//rng.expand("Sentence");
//rng.moveEnd("Sentence",2);
//rng.moveEnd("word",2);
rng.moveEnd("character",MaxBuff);
rng.select;
end;

IECommand := Doc as IoleCommandTarget;
IECommand.Exec(nil, OLECMDID_COPY,OLECMDEXECOPT_PROMPTUSER, A, B);

Exit;

//Print

SelTxt:=rng.text;
if SelTxt="" then
begin
PrintAllDoc:=false;
ShowLocalHelpForm;
end
else
begin
OleCheck(Doc.QueryInterface(IOleCommandTarget,OleCommandTarget));
OleCommandTarget.Exec(nil,OLECMDID_PRINT,OLECMDEXECOPT_PROMPTUSER,A,A);
OleCommandTarget:=nil;
Exit;
end;

Application.ProcessMessages;

if PrintAllDoc then
begin
OleCheck(Doc.QueryInterface(IOleCommandTarget,OleCommandTarget));
OleCommandTarget.Exec(nil,OLECMDID_PRINT,OLECMDEXECOPT_PROMPTUSER,A,A);
OleCommandTarget:=nil;
end;

end;



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

Текущий архив: 2002.10.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-56167
Lony
2002-10-07 13:15
2002.10.17
Подключение к Интернету.


1-56103
maiar
2002-10-09 02:22
2002.10.17
Линейка разметки для richedit ов


4-56396
Hacker_
2002-09-03 13:59
2002.10.17
Вывести текст на окне, без заливки белым


7-56355
kima
2002-08-05 18:30
2002.10.17
dir


1-56215
kofman
2002-10-06 15:50
2002.10.17
Из-за чего может появлятся окно с надписью