Moin Phlux,
ich hab' inzwischen mal einen kleinen Ansatz zusammengestoppelt.
Code:
[b]interface[/b]
[b]uses[/b] extctrls,classes,comctrls,shdocvw,controls,dialogs,sysutils;
[b]type[/b]
TcsExplorerListView = [b]class[/b](TCustomPanel)
[b]private[/b]
FListView : TListView;
FWebBrowser : TWebBrowser;
[b]public[/b]
[b]constructor[/b] Create(AOwner : TComponent); override;
[b]procedure[/b] CreateWnd; override;
[color=#000080]// ..... hier folgt der Standard von TPanel[/color]
Code:
[b]constructor[/b] TcsExplorerListView.Create(AOwner: TComponent);
[b]begin[/b]
[b]inherited[/b];
self.Width := 600;
self.Height := 300;
FListView := TListView.Create(self);
FListView.Parent := self;
FListView.Align := alRight;
FWebBrowser := [b]nil[/b];
[b]end[/b];
[b]procedure[/b] TcsExplorerListView.CreateWnd;
[b]begin[/b]
[b]inherited[/b] CreateWnd;
[b]if[/b] [b]not[/b] Assigned(FWebBrowser) [b]then[/b]
[b]begin[/b]
FWebBrowser := TWebbrowser.Create(self);
FWebBrowser.Align := alLeft;
FWebBrowser.ParentWindow := self.Handle;
FWebBrowser.Height := self.Height;
[color=#000080]// FWebBrowser.Navigate('www.delphipraxis.net');[/color]
[b]end[/b];
[b]end[/b];
Die Methode CreateWnd muss überschrieben werden, da im constructor noch kein
Handle der Komponente existiert. Dieses ist aber notwendig, damit der Webbrowser auch zur Entwicklungszeit angezeigt wird.
Was ich bis jetzt allerdings nicht herausbekommen habe:
Wieso funktioniert alLeft beim Webbrowser nicht richtig, wenn er so erzeugt wird?
(Kommentier mal die Zeile "FWebBrowser.Height := self.Height;" aus
)