Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#11
  Alt 18. Nov 2002, 16:43
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 )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat