![]() |
Re: AWebBrowser.Navigate benötigt mehr Angaben?!
Irgendwie versteh ich grade nur Bahnhof.
Ich habe die "MS Internet Controls" importiert und nun auf meinem Form eine Komponente namens "Browser" vom Typ CppWebBrowser_V1. Von IWebbrowser habe und finde ich da so gut wie gar nichts. |
Re: AWebBrowser.Navigate benötigt mehr Angaben?!
Zitat:
![]() Hier ein Auszug, wie das Interface deklariert ist:
Delphi-Quellcode:
Diesen Code findest du garantiert in der Unit, die du importiert hast.
// *********************************************************************//
// Interface: IWebBrowser // Flags: (4432) Hidden Dual OleAutomation Dispatchable // GUID: {EAB22AC1-30C1-11CF-A7EB-0000C05BAE0B} // *********************************************************************// IWebBrowser = interface(IDispatch) ['{EAB22AC1-30C1-11CF-A7EB-0000C05BAE0B}'] procedure GoBack; safecall; procedure GoForward; safecall; procedure GoHome; safecall; procedure GoSearch; safecall; procedure Navigate(const URL: WideString; const Flags: OleVariant; const TargetFrameName: OleVariant; var PostData: OleVariant; const Headers: OleVariant); safecall; procedure Refresh; safecall; procedure Refresh2(var Level: OleVariant); safecall; procedure Stop; safecall; Normalerweise heisst diese Unit SHDocVw oder auch SHDocVw_TLB. Dort finden sich noch zig andere Interfaces. |
Re: AWebBrowser.Navigate benötigt mehr Angaben?!
Ja, soweit verstehe ich das schon.
Aber ich arbeite ja nicht mit dem Interface direkt, sondern über die Komponente in der Designtime. Und da kann ich ein NavigateURL nirgendwo deklarieren. Wie gesagt: Ich setze die Komponente auf die Form, und bennene sie in "Browser" um. Nun habe ich eine Funktion (die so auch mit D7 funktioniert hat):
Delphi-Quellcode:
Der Aufruf des ganzen erfolgt(e) über die Zeile:
procedure LoadHTML(AWebBrowser: CppWebBrowser_V1; AHTMLCode: TStrings);
var BrowerInhalt: OleVariant; begin if AWebBrowser.Document = nil then AWebBrowser.Navigate('about:blank', EmptyParam, EmptyParam, EmptyParam, EmptyParam); BrowerInhalt:= AWebBrowser.Document; BrowerInhalt.Clear; BrowerInhalt.Write(AHTMLCode.Text); BrowerInhalt.Close; end;
Delphi-Quellcode:
LoadHTML(Browser, HTML); //wobei HTML eine stringList ist
Delphi-Quellcode:
type
TMainFrm = class(TForm) Browser: TCppWebBrowser; |
Re: AWebBrowser.Navigate benötigt mehr Angaben?!
Keiner mehr 'ne Idee...? :(
|
Re: AWebBrowser.Navigate benötigt mehr Angaben?!
Zitat:
Die Komponente, die Delphi um die WebBrowser-Interfaces herumgebaut hat nennt man auch Wrapper (=Umhüllung, Schachtel). Sie soll dir das Leben einfacher machen, weil du jetzt eine Komponente aufs Formular ziehen kannst. Trotzdem solltest du nur mit den Interfaces arbeiten und die Komponente nur als Ding betrachten, dass dir Zugriff auf die Interfaces des Internet Explorers gibt. Stell dir vor, du bekommst einen Bausatz für ein Flugzeug zu Weihnachten geschenkt. :xmas: Und du beschäftigst dich nur mit der Schachtel. Du musst die Schachtel aufmachen und reinschauen!!! In der Schachtel sich die Teile für das Flugzeug und in der Schachtel sind nur Interfaces für den IE. |
Re: AWebBrowser.Navigate benötigt mehr Angaben?!
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz