---- Vielleicht erinnern Sie sich noch an das Browser-Beispiel im Beispielprogramm von Delphi. In diesem Beispiel wurde ein Browser mit den Eigenschaften und Methoden des Steuerelements THttp erstellt. Dieses Beispiel ist wirklich gut, um zu verstehen, wie das THttp-Steuerelement verwendet wird. Aber nur wenige Leute werden es als echten Browser verwenden. Die Funktionen sind zu eingeschränkt, es unterstützt kein Frame, unterstützt keine Script-Skriptsprache, kann HTML-Dateien nicht als lokale Dateien anzeigen usw. Die meisten Benutzer verwenden IE oder Navigator. Wir Programmierer verwenden auch gerne vorgefertigte Browser. Wenn wir den Browser verwenden müssen, rufen wir den externen Browser im Programm über Methoden wie WinExec oder CreatePRocess auf. Diese Methode ist zwar sehr störungsfrei, aber ich bin immer etwas abgeneigt, die Programmkontrolle an andere externe Programme abzugeben. Dies ist für mich immer sehr problematisch, insbesondere wenn die Computerauslastung des Benutzers der Anwendungssoftware nicht sehr hoch ist hoch. Es wäre großartig, wenn es eine Browsersteuerung gäbe, mit der Sie den Browser in Ihr eigenes Programm einbetten könnten.
---- Wenn die externe Umgebung Ihrer Software WIN95 + IE oder WIN98 ist (die Nutzungsrate dieser Software ist immer noch sehr hoch), dann gibt es bereits eine IE-Browsersteuerung im System, die verwendet werden kann. Vielleicht haben Sie schon lange Zeit Sie haben die Zeit nicht gemerkt, verschwenden Sie keine Ressourcen, sondern nutzen Sie sie. Bei IE 3.X oder IE 4. werden Sie feststellen, dass das IE-Steuerelement im System als ActiveX-Steuerelement registriert wurde, sodass wir das Steuerelement in Delphi verwenden können.
---- Da das IE-Browsersteuerelement eine Anzeigefunktion bereitstellen muss, bevor es verwendet werden kann, können Sie CreateOleObject nicht verwenden, um eine Instanz im Programm abzurufen und deren Eigenschaften und Methoden direkt zu verwenden. Andernfalls verursacht das Programm beim Ausführen einen Fehler. In diesem Fall müssen Sie die in Delphi bereitgestellte Funktion „ActiveX-Steuerelement importieren“ verwenden. Die Vorgehensweise wird unten beschrieben.
---- Rufen Sie im Menü „Komponenten“ die Funktion „ActiveX-Steuerelement importieren“ auf, wählen Sie „Microsoft Internet Controls (Version1.1)“ in der Liste der registrierten Steuerelemente aus. Der in der Eingabeaufforderungsleiste unten angezeigte Pfad lautet C:PWin98SystemSHDOCVW .DLL, drei Steuerelemente, die registriert werden können, sind in Klassennamen (Typliste) aufgeführt: TWebBrowser_V1, TWebBrowser und TShellFolderViewOC sind IE3-Browsersteuerung, IE4-Browsersteuerung bzw. „Microsoft Shell Folder View Router“-Steuerung. Klicken Sie zum Installieren auf „Installieren“. Nach Abschluss der Installation werden drei Steuerelemente in der „ActiveX“-Steuerleiste hinzugefügt, nämlich TWebBrowser_V1, TWebBrowser und TShellFolderViewOC; im Importverzeichnis von Delphi wird eine Datei SHDocVw_TLB.PAS erstellt, die die Verpackungsdetails dieser drei Steuerelemente enthält. Natürlich enthält es Beschreibungen der Eigenschaften und Methoden des Steuerelements, die uns als Referenz für die Verwendung des Steuerelements dienen können.
----
Nehmen Sie als Beispiel TWebBrowser (IE4-Browsersteuerung). Zu den allgemeinen Eigenschaften und Methoden von TWebBrowser gehören hauptsächlich: GoBack: Methode, zurück zur vorherigen Seite. GoForward: Methode, um zur nächsten Seite zu gelangen. GoHome: Methode, ruft die Standard-Homepage auf, die in den IE-Optionen festgelegt ist. GoSearch: Methode, ruft die Standardsuchseite auf, die in den IE-Optionen festgelegt ist. Navigate(const URL: WideString; var Flags, TargetFrameName, PostData, Headers: OleVariant): Methode, ruft die angegebene Seite auf, die spezifischen Parameter lauten wie folgt: URL: die URL der angegebenen Seite. Flags: Worttyp, die Funktion ist noch nicht klar, kann auf 0 gesetzt werden. TargetFrameName: WideString, öffne den Frame, in dem sich die Seite befindet, wird sie im aktuellen Frame geöffnet; wenn der durch TargetFrameName angegebene Frame vorhanden ist; TargetFrameName existiert nicht, es wird ein neues Fenster geöffnet. Dies entspricht dem Aufruf des externen IE-Browsers. PostData: boolean, ob das Senden von Daten zugelassen werden soll. Header: WideString, die Header-Daten der zu sendenden URL-Anfrage. Aktualisieren: Methode, aktualisieren Sie die aktuelle Seite. Stop: Methode, Stoppen Sie den Aufruf oder das Öffnen der aktuellen Seite. LocationName: Eigenschaft (WideString), der Name des aktuellen Standorts. LocationURL: Eigenschaft (WideString), die URL des aktuellen Standorts. Besetzt: Attribut (Boolean), ob es beschäftigt ist. Visible: Eigenschaft (Boolean), ob das Browserfenster sichtbar ist. (Die folgenden Eigenschaften sind neu in TWebBrowser und nicht in TWebBrowser_V1 verfügbar. Ihre Funktionen müssen untersucht werden.) StatusBar: Eigenschaft (Boolean), ob die Statusleiste angezeigt werden soll. StatusText: Eigenschaft (WideString), Inhalt der Statusleiste. ToolBar: Eigenschaft (SYSINT), Inhalt in der Symbolleiste. MenuBar: Eigenschaft (Boolean), ob die Menüleiste angezeigt werden soll. FullScreen: Eigenschaft (Boolean), ob im Vollbildmodus angezeigt werden soll. Offline: Eigenschaft (Boolean), ob offline gesurft werden soll. AddressBar: Eigenschaft (Boolean), ob die Adressleiste angezeigt werden soll. Zu den allgemeinen Ereignissen von TWebBrowser gehören hauptsächlich: OnStatusTextChange = procedure(Sender: TObject; const Text: WideString) of object;
---- Tritt auf, wenn sich die Eingabeaufforderungsinformationen der Statusleiste ändern. Der Parameter Text ist die aktuelle Eingabeaufforderungsinformation der Statusleiste. Wir können unsere eigenen Eingabeaufforderungsinformationen in der Statusleiste aktualisieren oder andere Transaktionen auf der Grundlage dieser Informationen verarbeiten.
----OnProgressChange = procedure(Sender: TObject; Progress, ProgressMax: Integer) of object;
---- Tritt auf, wenn sich der Fortschritt der geöffneten Seite ändert. Der Parameter Progress ist der aktuelle Fortschritt und ProgressMax ist der Gesamtfortschritt. Wir können unsere eigenen Statusleisten-Eingabeaufforderungsinformationen aktualisieren oder andere Transaktionen basierend auf diesen beiden Parametern verarbeiten.
----OnCommandStateChange = procedure(Sender: TObject; Command: Integer; Enable: WordBool) of object;
---- Tritt auf, wenn ein neuer Befehl ausgeführt wird. „Befehl“ ist die Befehlskennung und „Aktivieren“ gibt an, ob der Befehl ausgeführt werden darf. OnTitleChange = procedure(Sender: TObject; const Text: WideString) of object;
---- Tritt auf, wenn sich der Titel der Seite ändert. Text ist der aktuelle Titel.
----OnPropertyChange = procedure(Sender: TObject; const Property_: WideString) of object;
---- Tritt auf, wenn sich die Eigenschaften der Seite ändern. Property_ ist der Eigenschaftsname OnDownloadComplete: TNotifyEvent
---- Tritt auf, nachdem die Download-Seite abgeschlossen ist.
----OnDownloadBegin: TNotifyEvent
---- Tritt auf, bevor die Download-Seite startet.
---- (1) Erstellen Sie Ihr eigenes Hilfesystem
---- Wir verwenden das IE-Browsersteuerelement, um ein Hilfesystem für Benutzer zu erstellen. Die Hilfedatei besteht aus mehreren HTML-Dateien. Ein Thema entspricht einer HTML-Datei (Topic.HTM), und die Elemente unter jedem Thema entsprechen HTML-Dateien. Ein Tag (#Item). Auf diese Weise müssen wir in unserem System nicht mehr den IE-Browser oder das WinHelp-Programm aufrufen, um Benutzern Hilfe bereitzustellen. Ich glaube, Sie alle kennen die Vorteile von HTML-Hilfedateien im Vergleich zu herkömmlichen HLP-Hilfedateien.
---- Im folgenden Beispiel wird die Verwendung der Navigate-Methode von TWebBrowser (IE4-Browsersteuerung) demonstriert. Bitte beachten Sie die Kommentare im Programm. (Unten ist der Hauptausschnitt des Programms).
{Aufrufen der Hilfedatei je nach Thema und Projekt}procedure ShowHelp(HelpTopic,HelpItem: String);var TargetFrameName,PostData,Heads,Flags:OleVariant;URL:widestring;begin TargetFrameName:= ';{Bei Angabe der leeren Zeichenfolge von Frame, dann Öffnen Sie die Hilfedatei im aktuellen Frame} PostData := false;{Keine Daten senden} Heads := ';{Header-Informationen sind leer} Flags := 0;{Flags ist auf 0 gesetzt} URL := HelpTopic + '.HTM#'+HelpItem;{URL der Hilfeinformationen} mit formHelp.webbrowser do{Hilfeinformationen im IE-Browser-Steuerelement im Hilfefenster anzeigen} beginnavigieren( URL,Flags,TargetFrameName,PostData,Heads);{Hilfeinformationen anzeigen} end;end;
---- (2) Zeigt eine GIF-Animation an
---- Wenn Sie kein geeignetes Steuerelement für die Animationsanzeige haben, können Sie auch die folgende Methode ausprobieren.
procedure ShowGIF( GIFFileName : String );var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : widestring;begin TargetFrameName := ';{Bei Angabe der leeren Zeichenfolge von Frame wird die Animationsdatei im aktuellen Frame geöffnet} PostData := false;{Keine Daten senden} Heads := ';{Header-Informationen sind leer} Flags := 0;{Flags sind auf 0 gesetzt} URL := GIFFileName; formGIF.webbrowser do{Animation im IE-Browsersteuerelement im angegebenen Fenster anzeigen} begin browse(URL,Flags,TargetFrameName,PostData,Heads);{Animationsdatei anzeigen} end;end;
----Das obige Programm wurde unter PWIN98+Delphi3.0 debuggt.