Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Alguien sabe como añadir a un Tbrowser la opción para que se pueda hacer zoom (https://www.clubdelphi.com/foros/showthread.php?t=72844)

farute 15-03-2011 14:49:52

Alguien sabe como añadir a un Tbrowser la opción para que se pueda hacer zoom
 
Alguien sabe como añadir a un Tbrowser la opción para que se pueda hacer zoom con CTRL + la rueda del raton o CTRL + las teclas + y -

al igual que lo hacen el Internet Explorer y el Firefox.

Según he leido antes de IE7 funcionaba nativamente esto, pero con los nuevos IE hay que implementarlo.

he leido esto pero no llego a entenderlo bien y no se como implementarlo:
http://www.rendelmann.info/blog/2008...ork+Again.aspx

gracias

roman 15-03-2011 18:13:46

A ver, intenta algo así:

Código Delphi [-]
const
  OLECMDID_OPTICAL_ZOOM = 63;

procedure TForm1.FormShow(Sender: TObject);
var
  pvaIn: OleVariant;

begin
  WebBrowser1.Navigate('about:');

  while WebBrowser1.QueryStatusWB(OLECMDID_PRINT) <> OLECMDF_SUPPORTED or  OLECMDF_ENABLED do
    Application.ProcessMessages;

  pvaIn := 100;
  WebBrowser1.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DODEFAULT, pvaIn);
end;

// Saludos

erickahr 15-03-2011 18:47:50

Revisa que en el uses estes invocando OleCtrls, SHDocVw, StdCtrls.

Ahora en un boton pones:
Código Delphi [-]
W.OleObject.Document.Body.Style.Zoom := 0.5;

Donde W es el TWebBrowser, y el 0.5 es el nivel de zoom (50%).

Lo puedes poner en un TTrackBar:
Código Delphi [-]
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  W.OleObject.Document.Body.Style.Zoom := TrackBar1.Position/10;
end;

Propiedades del TTrackBar:
Código Delphi [-]
object TrackBar1: TTrackBar
    Left = 80
    Top = 416
    Width = 150
    Height = 45
    Max = 100
    Min = 1
    Position = 10
    TabOrder = 3
    OnChange = TrackBar1Change
  end

Con esas propiedades y el codigo que te pongo, el TrackBar Permite cambiar el zoom desde el 1% hasta el 1000%.

Espero te funcione. :cool:

farute 15-03-2011 20:59:39

muchas gracias por tu ayuda,
pero eso no es lo que preguntaba
un slider para hacer zoom en el webbrowser ya lo tenia puesto.
Lo que me refería es que al pulsar CTRL + rueda del raton se haga zoom en el webbrowser como hace el IE y Firefox.

roman 15-03-2011 21:12:12

Y, ¿revisaste mi mensaje?

// Saludos

farute 15-03-2011 23:20:31

Cita:

Empezado por roman (Mensaje 393706)
Y, ¿revisaste mi mensaje?

// Saludos

Si lo he probado pero o algo hago mal o no rula.
mediafire.com/?ow8sv7eosw1g2lc

Quizás haya que poner que al pulsar la tecla CTRL el foco pase al slider¿?

roman 16-03-2011 15:45:13

Yo lo probé en Delphi 7 y anduvo sin problema. De hecho, el ejecutable que pones también anda sin problemas. Tengo IE7.

// Saludos

farute 16-03-2011 16:47:20

Cita:

Empezado por roman (Mensaje 393794)
Yo lo probé en Delphi 7 y anduvo sin problema. De hecho, el ejecutable que pones también anda sin problemas. Tengo IE7.

// Saludos

creo que de IE7 para abajo no hace falta hacer nada de todo esto, ya que por defecto lo hace, el problema es con IE8 para arriba.
Yo tengo instaldo el IE9 que acaba de salir hace poco y no me va.
Solo me hace zoom con el wheel del raton si pongo el foco en el slider.
Aparte mi intención es que funcione para cualquier IE no solo para el que yo tenga.

roman 16-03-2011 16:59:15

Bueno, yo partí de esto:

Cita:

Empezado por farute (Mensaje 393629)
Según he leido antes de IE7 funcionaba nativamente esto, pero con los nuevos IE hay que implementarlo.

Y, en efecto. Sin el código que puse, no funciona con IE7. Veré si cambio a IE8 y hago la prueba. De todas maneras, es curioso que si pruebo el Ctrl+Ruedita en mi aplicación, funciona, pero si lo hago directamente en el IE, se congela y hay que matar el proceso.

// Saludos

farute 16-03-2011 18:29:21

he probado y el programa no funciona ni en IE8 ni en IE9,
en IE6 que tenía en un xp virtual si funciona.
En IE7 no lo he podido probar.

farute 16-03-2011 22:47:12

He encontrado esto pero no se como traducirlo para delphi pillando solo lo necesario.
http://rssbandit.svn.sourceforge.net...57&view=markup


La franja horaria es GMT +2. Ahora son las 18:49:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi