Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Библиотека MsHtml, все о ее возможностях, Примеры использования из MsHtml 
:(
    Опции темы
goa_dreamer
Дата 26.9.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.1.2008

Репутация: 1
Всего: 1



Хотелось бы создать тему в которой можно выкладывать применения интерфейсов из библиотеки MsHtml.

Моя задача, из которой возникла эта идея:
В компоненте TWebBrowser загружена веб-страница, где имеется одна или больше таблиц. Этими таблицами нужно манипулировать:
- добавление/удаление рядов/колонок;
- доступ к ячейкам таблицы;
- доступ к стилям тегов таблицы.

Код

With ( ( WebBrowser1.Document as IHtmlDocument2 ).all.tags( 'table' ) as IHtmlElementCollection ) do
Begin
 With ( item( 0, '' ) as IHtmlTable ) do
 Begin
  With ( insertRow( 0 ) as IHtmlTableRow ) do {вставляет ряд, тег <tr></tr>}
  Begin
   With ( InsertCell( 0 ) as IHtmlTableCell ) do {вставляет ячейку, тег <td></td>}
   Begin 
   end;
  end;
  With ( rows.item( 0, '' ) as IHtmlTableRow ) do {получение доступа к ряду с индексом 0}
  Begin
   With ( cells.item( 0, '' ) as IHtmlElement ) do {получение доступа к ячейке в виде свойств IHtmlElement, можно использовать IHtmlTableCell}
   Begin
    {для получения доступа к атрибутам тега}
    ShowMessage( getAttribute( 'width', 0 ) );
    {для получения доступа к атрибутам стиля тега}
    ShowMessage( style.getAttribute( 'border', 0 ) );
   end;
  end;
 end;
end;

PM MAIL   Вверх
goa_dreamer
Дата 10.10.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.1.2008

Репутация: 1
Всего: 1



Еще одно добавление связанное с проблемой печати через компонент TWebBrowser листа orientation = landscape.

Создаем отдельно файл printtemplate.htm:
Код

<HTML XMLNS:IE>
<HEAD>
<?IMPORT NAMESPACE="IE" IMPLEMENTATION="#default">
<STYLE TYPE="text/css">
.contentstyle
{
    width:11in;
    height:8.5in;
    margin:none;
    background:white;   
    border:1 dashed gray;
}
.masterstyle

    width:11in;
    height:8.5in;
    margin:none;
}
</STYLE>
<script LANGUAGE="JavaScript">
<!--
invocations = 0;

function CheckIfPrintRequested() {
  invocations++;
  if (invocations > 1) return;
  switch (dialogArguments.__IE_PrintType) {
    case "Prompt":
      if (printer.showPrintDialog()) PrintPrep();
      break;
    case "NoPrompt":
      PrintPrep();
      break;
    case "Preview":
    default:
      break;
  }
}

function PrintPrep() {
  if (layoutrect1.contentDocument.readyState == "complete") {
    PrintNow();
  }
  else {
    layoutrect1.contentDocument.onreadystatechange = PrintWhenContentDocComplete;
  }
}

function PrintWhenContentDocComplete() {
  if (layoutrect1.contentDocument.readyState == "complete")    {
    layoutrect1.contentDocument.onreadystatechange = null;
    PrintNow();
  }
}

function PrintNow() {
  printer.startDoc("Printing from template2.htm");
  printer.printPage(page1);    
  printer.printPage(page2);
  printer.stopDoc();
}
// -->
</SCRIPT>

</HEAD>
<BODY>
<IE:TEMPLATEPRINTER ID="printer"/>
<script Language="JavaScript">
     printer.orientation="landscape";
    </SCRIPT>
    
<IE:DEVICERECT ID="page1" CLASS="masterstyle" MEDIA="print">
    <IE:LAYOUTRECT ID="layoutrect1" CONTENTSRC="document" CLASS="contentstyle" NEXTRECT="layoutrect2"/>
</IE:DEVICERECT>

<IE:DEVICERECT ID="page2" CLASS="masterstyle" MEDIA="print">
    <IE:LAYOUTRECT ID="layoutrect2" CLASS="contentstyle" ONLAYOUTCOMPLETE="setTimeout('CheckIfPrintRequested()', 100)"/>
</IE:DEVICERECT>

</BODY>
</HTML>


Дополнительную информацию о шаблонах печати можно узнать из:
http://msdn.microsoft.com/en-us/library/aa969431.aspx

В проекте Delphi добавляем компонент TWebBrowser и кнопку с следущим кодом:
Код

var
 pvaIn : OleVariant;
Begin
 pvaIn := 'printtemplates\printtemplate.htm'; //путь к вашему шаблону печати
 WebBrowser1.ExecWB( OLECMDID_PRINTPREVIEW, 0, pvaIn );
end;


Шаблон печати можете модифицировать под свои задачи.
PM MAIL   Вверх
shraibikus
Дата 4.3.2009, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.6.2008

Репутация: нет
Всего: нет



 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.