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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> И снова TWebBrowser, Размер шрифта 
:(
    Опции темы
Quadr0
Дата 19.6.2005, 21:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 21:21
  Вверх
Yanis
Дата 20.6.2005, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

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



Пока сам разбирался как это делается, написал по ходу примерчик:
Код

unit Unit1;

interface

uses
  Windows, Messages, Variants, Classes, Controls, Forms,
  ActiveX, OleCtrls, SHDocVw, StdCtrls;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    ComboBox1: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
    procedure SetWBFontSz(FontSize: Byte; var WB: TWebBrowser);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

const
  WBFS_LARGEST = 4; { Самый крупный }
  WBFS_LARGE   = 3; { Крупный }
  WBFS_AVERAGE = 2; { Средний }
  WBFS_FINE    = 1; { Мелкий }
  WBFS_FINEEST = 0; { Самый мелкий }

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.google.com');
end;

procedure TForm1.SetWBFontSz(FontSize: Byte; var WB: TWebBrowser);
var
  Disp: IDispatch;
  CmdTarg: IOleCommandTarget;
  ZoomFaktor: OleVariant;
begin
  Disp := WB.Document;
  Disp.QueryInterface(IOleCommandTarget, CmdTarg);

  VariantInit(ZoomFaktor);
  ZoomFaktor := FontSize;

  CmdTarg.Exec(nil, OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, ZoomFaktor, EmptyParam);
  VariantClear(ZoomFaktor);

  if Assigned(CmdTarg) then
    CmdTarg._Release;

  if Assigned(Disp) then
    Disp._Release;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  case ComboBox1.ItemIndex of
    0: SetWBFontSz(WBFS_LARGEST, WebBrowser1);
    1: SetWBFontSz(WBFS_LARGE, WebBrowser1);
    2: SetWBFontSz(WBFS_AVERAGE, WebBrowser1);
    3: SetWBFontSz(WBFS_FINE, WebBrowser1);
    4: SetWBFontSz(WBFS_FINEEST, WebBrowser1);
  end;
end;

end.

Думаю ссылку на оригинал не нужно приводить?


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 20.6.2005, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Можно проще:
Код
procedure SetWBFontSz(FontSize: integer; var WB: TWebBrowser);
var
  ZoomFaktor: OleVariant;
begin
  ZoomFaktor := FontSize;
  wb.ExecWB(OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, ZoomFaktor);
  VariantClear(ZoomFaktor);
end;

Только всё равно это не работает т.к. надо - не меняется размер шрифта всего документа...




--------------------
С уважением, г-н Посол.
PM   Вверх
Yanis
Дата 20.6.2005, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

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



Цитата(p0s0l @ 20.6.2005, 01:38)
Только всё равно это не работает т.к. надо - не меняется размер шрифта всего документа...

Почему?


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Quadr0
Дата 20.6.2005, 02:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 21:25
  Вверх
p0s0l
Дата 20.6.2005, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Я загрузил первый попавшийся HTML, там изменялся размер только 1 строчки - заголовка...



--------------------
С уважением, г-н Посол.
PM   Вверх
Yanis
Дата 20.6.2005, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

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



Цитата(p0s0l @ 20.6.2005, 11:56)
Я загрузил первый попавшийся HTML, там изменялся размер только 1 строчки - заголовка...

Ну тогда всё правильно. Просто веб-мастера для того, что бы страница выглядела на всех компах одинаково, фиксируют шрифт на странице. Причём совершенно не заботясь о тех у кого проблемы со зрением. То же самое, к стати сделано и на Vingrad'е. Размер шрифта здесь тоже нельзя менять.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 20.6.2005, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



А, ну тогда всё верно smile


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

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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