Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Body.Style.Zoom (https://www.delphipraxis.net/115100-body-style-zoom.html)

Delphiturbo 5. Jun 2008 22:42


Body.Style.Zoom
 
Hallo

um eine Webbrowser zu zoomen, sind die 2 Varianten möglich :
Delphi-Quellcode:
WebBrowser1.OleObject.Document.Body.Style.Zoom :=2;
WebBrowser1.OleObject.Document.Body.Style.Zoom :='200%';
Ich wollte den Zoomfaktor so eingeben :
Delphi-Quellcode:
var
zoom : Real;
creenwidth : Integer;
begin
creenwidth := Screen.MonitorFromWindow(Handle).Width;
zoom:= creenwidth div Form1.width;
WebBrowser1.OleObject.Document.Body.Style.Zoom :=zoom; // passiert nichts

Brainshock 6. Jun 2008 08:00

Re: Body.Style.Zoom
 
Ich finde hier zwar keine direkte Frage, aber ich gehe mal davon aus, es bezieht sich auf das "passiert nichts" im Quellcode.
Hast du mal kontrolliert, was in zoom drinsteht? Vielleicht ist es ja 1 und es wird deshalb nichts gezoomt.

gruß,

Delphiturbo 6. Jun 2008 09:28

Re: Body.Style.Zoom
 
Hallo

ich have "div" durch "/" ersetzt dann passiert mindestens was.
ich möchte den Webbrowser bei Navigate zoomen

Delphi-Quellcode:
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
//WebBrowser1.OleObject.Document.Body.Style.Zoom:=1.5;
WebBrowser1.OleObject.Document.Body.Style.Zoom:='150%'; // Error aber Delphi Debuger gibt nichts über den Fehler !
end;

DeddyH 6. Jun 2008 09:31

Re: Body.Style.Zoom
 
Zoom ist bestimmt kein String. Schalt endlich mal das ein, was zwischen Deinen Ohren sitzen sollte, sonst hilft Dir bald niemand mehr.

Muetze1 6. Jun 2008 09:32

Re: Body.Style.Zoom
 
Zitat:

Zitat von DeddyH
Zoom ist bestimmt kein String.

Ach, und Variant ist gleich mit ausgeschlossen?

Delphiturbo 6. Jun 2008 09:49

Re: Body.Style.Zoom
 
Vorher habe ich so versucht:
Delphi-Quellcode:
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  Doc: IHTMLDocument2;
  body: OleVariant;
begin
  Doc := IHTMLDocument2(WebBrowser1.Document);
  body := Doc.Body;
// body.Style.Zoom := '150%';
  body.Style.Zoom := 1.50;// hier kommt der Fehler ! Und wie gesagt, Delphi Debuger sagt nicht darüber !
end;

mkinzler 6. Jun 2008 10:04

Re: Body.Style.Zoom
 
Welcher Fehler wird den angezeigt?

DeddyH 6. Jun 2008 10:10

Re: Body.Style.Zoom
 
Zitat:

Zitat von Muetze1
Ach, und Variant ist gleich mit ausgeschlossen?

Der bringt mich langsam völlig aus dem Tritt mit seinen ständigen Zoom-Threads. :?

Delphiturbo 6. Jun 2008 10:16

Re: Body.Style.Zoom
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von mkinzler
Welcher Fehler wird den angezeigt?

Der Fehler erscheint nicht bei Kompilieren sondern wenn ich auf das Button Klicke
sehe Anhang

sirius 6. Jun 2008 10:23

Re: Body.Style.Zoom
 
Zitat:

Zitat von Muetze1
Zitat:

Zitat von DeddyH
Zoom ist bestimmt kein String.

Ach, und Variant ist gleich mit ausgeschlossen?

Wusste gar nicht, dass Variant die Prozentrechnung beherrscht :mrgreen:

Sharky 6. Jun 2008 10:29

Re: Body.Style.Zoom
 
Zitat:

Zitat von Delphiturbo
...// body.Style.Zoom := '150%';
body.Style.Zoom := 1.50;// hier kommt der Fehler ! Und wie gesagt, Delphi Debuger sagt nicht darüber !
end;
[/delphi]

Ich habe beide Varianten getestet und sie laufen ohne Fehler.

Aber nicht innerhalb dieses Ereignisses

Phoenix 6. Jun 2008 10:32

Re: Body.Style.Zoom
 
Zitat:

Zitat von Delphiturbo
sehe Anhang

Der Fehler sagt doch so ziemlich alles aus, was man wissen muss:
Es kann eine Eigenschaft nicht lesen. Also ist entweder Body oder Body.Style nicht verfügbar.

Ich würde ja mal sagen, direkt nach dem Navigieren ist der Body der Seite noch nicht geladen. Das passiert erst bei einem späteren Event.

Sharky 6. Jun 2008 10:35

Re: Body.Style.Zoom
 
Zitat:

Zitat von Phoenix
... Ich würde ja mal sagen, direkt nach dem Navigieren ist der Body der Seite noch nicht geladen. Das passiert erst bei einem späteren Event.

Und das steht sogar ausdrücklich in der Hilfe zu diesem Ereigniss.

Phoenix 6. Jun 2008 10:43

Re: Body.Style.Zoom
 
Zitat:

Zitat von Sharky
Und das steht sogar ausdrücklich in der Hilfe zu diesem Ereigniss.

Die hab ich grad nicht zur hand. Das war nur logisches Denken...

Äh.. heisst das dann etwa, dass Delphiturbo also erneut weder in die Hilfe geguckt noch mitgedacht hat? :wall:

Delphiturbo 6. Jun 2008 10:47

Re: Body.Style.Zoom
 
Zitat:

Zitat von Phoenix
Ich würde ja mal sagen, direkt nach dem Navigieren ist der Body der Seite noch nicht geladen. Das passiert erst bei einem späteren Event.

Wie kann ich dann den Body vorher laden ?

Sharky 6. Jun 2008 10:49

Re: Body.Style.Zoom
 
Zitat:

Zitat von Phoenix
...Die hab ich grad nicht zur hand. Das war nur logisches Denken...

Mal F1 gedrückt

Beschreibung
In der Ereignisbehandlungsroutine für OnNavigateComplete2 können Sie nach dem erfolgreichen Navigieren zu einer neuen Ressource bestimmte Aktionen durchführen. Das Ereignis kann bereits ausgelöst werden, bevor das Dokument vollständig heruntergeladen ist. In diesem Fall wurde aber zumindest ein Teil des Dokuments empfangen und ein Anzeigeobjekt für das Dokument erstellt.

mkinzler 6. Jun 2008 10:50

Re: Body.Style.Zoom
 
Geladen wird er ja, du musst warten bis das passiert ist (OnDocumentComplete)

Sharky 6. Jun 2008 10:50

Re: Body.Style.Zoom
 
Zitat:

Zitat von Delphiturbo
...Wie kann ich dann den Body vorher laden ?

Vor dem Navigieren laden? Das wäre ein guter Trick.
Aber eventuell gibt es ja ein Ereigniss das ausgelöst wird wenn das Dokument komplett geladen wurden?

Phoenix 6. Jun 2008 10:50

Re: Body.Style.Zoom
 
Zitat:

Zitat von Delphiturbo
Wie kann ich dann den Body vorher laden ?

Was an
Zitat:

Zitat von Phoenix
Das passiert erst bei einem späteren Event.

hast Du jetzt wieder nicht verstanden? :wall:

Muetze1 6. Jun 2008 10:57

Re: Body.Style.Zoom
 
Zitat:

Zitat von sirius
Zitat:

Zitat von Muetze1
Zitat:

Zitat von DeddyH
Zoom ist bestimmt kein String.

Ach, und Variant ist gleich mit ausgeschlossen?

Wusste gar nicht, dass Variant die Prozentrechnung beherrscht :mrgreen:

Wie, strings kann ein Variant auch nimmer halten, oder wie? Wer sagt denn, dass das ActiveX Object nicht mit solchen Werten umgehen kann? Warum sollte das ActiveX Object nicht schauen und es entsprechend umsetzen, wenn es ein String ist und dann noch mit einem % hinten dran. Afaik konnte das ActiceX von Word dies beim Zoom auch in beiden Formen. Direkter Ordinalwert oder als Prozentangabe mit entsprechendem Prozentzeichen als Suffix.

Somit die Frage: Was findest du daran so lustig?

Delphiturbo 6. Jun 2008 11:39

Re: Body.Style.Zoom
 
Ich bin nun fast soweit :mrgreen:
Delphi-Quellcode:
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  CurWebrowser: IWebBrowser;
  TopWebBrowser: IWebBrowser;
  Document: OleVariant;
  WindowName: string;

  Doc: IHTMLDocument2;
  body: OleVariant;
begin
  Doc := IHTMLDocument2(WebBrowser1.Document);
  body := Doc.Body;
  CurWebrowser := pDisp as IWebBrowser;
  if CurWebrowser = TopWebBrowser then
   begin
  body.Style.Zoom := '100%';
end
  else
  begin
  body.Style.Zoom := '150%';
  end;
end;
Quelle : http://www.swissdelphicenter.ch/de/showcode.php?id=1355

Phoenix 6. Jun 2008 11:43

Re: Body.Style.Zoom
 
Da läuft es einem kalt den Rücken runter wenn ich so einen Quatsch an Code sehe :roll:

Delphiturbo 6. Jun 2008 11:47

Re: Body.Style.Zoom
 
Zitat:

Zitat von Phoenix
Da läuft es einem kalt den Rücken runter wenn ich so einen Quatsch an Code sehe :roll:

Ich habe nun den Code bearbeitet. Oder siehst Du immer noch einen Quatsch :(

Phoenix 6. Jun 2008 11:54

Re: Body.Style.Zoom
 
Zitat:

Zitat von Delphiturbo
Ich habe nun den Code bearbeitet. Oder siehst Du immer noch einen Quatsch :(

Ja.
  • Was soll die If-Abfrage gegen einen nicht initialisierten Wert?
  • Wozu lässt Du die Variablendeklarationen drin wenn Du sie nicht benutzt?

taaktaak 6. Jun 2008 11:55

Re: Body.Style.Zoom
 
Arggggg, schau dir mal TopWebbrowser an ...

mkinzler 6. Jun 2008 11:56

Re: Body.Style.Zoom
 
Dir scheint das Grundverständnis für die Vorgänge zu fehlen.
Mit .Navigate wird das Laden angestossen. Die Fertigstellung im DocumentComplete-Event.

Delphiturbo 6. Jun 2008 12:03

Re: Body.Style.Zoom
 
Achso
Ich habe nur die Tutorial komplett getestet. Also so natürlich :wink:
Delphi-Quellcode:
// in uses : MSHTML
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  Document: OleVariant;
  Doc: IHTMLDocument2;
  body: OleVariant;
begin
  Doc := IHTMLDocument2(WebBrowser1.Document);
  body := Doc.Body;
  body.Style.Zoom := '150%';
end;

Phoenix 6. Jun 2008 12:05

Re: Body.Style.Zoom
 
So langsam scheint das was zu werden.

Delphiturbo 6. Jun 2008 14:54

Re: Body.Style.Zoom
 
Ich wollte kein neues Thema öffnen
ich möchte statt '150%' eine Variable z.B. zoom nehmen
wie soll diese Variable eingegeben werden ?
zoom = 150
Delphi-Quellcode:
...
//Body.Style.Zoom :='150%';
Body.Style.Zoom :='(Pchar(zoom) + Pchar('%'))';

DeddyH 6. Jun 2008 14:59

Re: Body.Style.Zoom
 
Zitat:

Zitat von Delphiturbo
wie soll diese Variable eingegeben werden ?

Das frag ich mich auch. Welchen Typ soll sie denn haben?

Delphiturbo 6. Jun 2008 15:01

Re: Body.Style.Zoom
 
Der Typ von zoom ist in diesem Fall Integer

DeddyH 6. Jun 2008 15:02

Re: Body.Style.Zoom
 
Was bekommst Du hier angezeigt?
Delphi-Quellcode:
ShowMessage(Format('%d%%',[150]));

Delphiturbo 6. Jun 2008 15:13

Re: Body.Style.Zoom
 
ja als Message funktioniert :
Delphi-Quellcode:
ShowMessage(Format('%d%%',[zoom])); // OK
aber so nicht:
Delphi-Quellcode:
Body.Style.Zoom :='Format('%d%%',[zoom])'; // illegal Character in InputFile : '%' ($25)

DeddyH 6. Jun 2008 15:18

Re: Body.Style.Zoom
 
So, wo ist denn hier jetzt der Unterschied(genau hinsehen)?
1.
Delphi-Quellcode:
ShowMessage(Format('%d%%',[zoom]));
2.
Delphi-Quellcode:
ShowMessage('Format('%d%%',[zoom])');
Das war mein letzter Wink mit dem Zaunpfahl, sonst muss ich Dir den ganzen Jägerzaun um die Ohren hauen :mrgreen:

Delphiturbo 6. Jun 2008 15:27

Re: Body.Style.Zoom
 
Der Unterschied, 1. true u. 2. false

Medium 6. Jun 2008 15:28

Re: Body.Style.Zoom
 
An dieser Stelle falle ich komplett vom Glauben ab. Machst du das gewerblich!? Wenn ja, dann gibts ein letztes Stoßgebet für die Kunden von mir.

mkinzler 6. Jun 2008 15:29

Re: Body.Style.Zoom
 
Ne eher die Tatsache, dass der IE keine Delphi-Funktionen versteht

DeddyH 6. Jun 2008 15:29

Re: Body.Style.Zoom
 
Zitat:

Zitat von DelphiTurbo
Der Unterschied, 1. true u. 2. false

:shock: wie bitte?

Phoenix 6. Jun 2008 15:38

Re: Body.Style.Zoom
 
:wall:

Delphiturbo. Ich weiss nicht wie ich das jetzt ausdrücken soll, ohne Dir zu Nahe zu treten.

Ich bin einfach ehrlich:

Du wirst nie im Leben auch nur ein Stück Quellcode selber schreiben können, das auch nur Ansatzweise das tut, was Du von dem Code erwartest. Du kannst ja noch nichtmal Strings Escapen, und das ist nun wirklich so ziemlich das allereinfachste was es gibt.

Tu Dir (und uns allen) einen Gefallen und geb das Programmieren auf. Du bist wirklich nicht dafür geeignet. Glaub es uns einfach. Das hat so keinen taug.

rollstuhlfahrer 6. Jun 2008 15:38

Re: Body.Style.Zoom
 
Zitat:

Zitat von Delphiturbo
Der Unterschied, 1. true u. 2. false

Da kann nirgendwo ein boolischer Wert rauskommen, da keine Funktion vorahanden ist, die boolische Werte zurückgeben kann. Mach den ganzen Krempel nochmal und achte auf die Ausgabe (das was du sehen solltest).

rollstuhlfahrer

EDIT: Der rote Kasten hat jetzt auch bei mir mal Urlaub gehabt


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz