Delphi-PRAXiS
Seite 2 von 3     12 3      

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 ShellListView mit Thumbnail Vorschau (https://www.delphipraxis.net/1344-shelllistview-mit-thumbnail-vorschau.html)

Christian Seehase 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 ;-))

phlux 18. Nov 2002 18:46

Hi Christian!
Hab heute mal versucht deine Kompo bei mir nachzubasteln, dabei ergab sich jedoch folgendes Problem, so wie es scheint hast du wohl die TWebBrowser Kompo der Professional Version genommen, ist ein bisschen blöd, da man so nur einen nutzen von der Kompo hat wenn man eine (teure) Prof.Ver. vorweisen kann (zum Glück hatte ich grad D6 Prof. von meiner Schule zur Hand :) ), besser wäre es auf die ActiveX Kompo wohl umzusteigen. Problem bei der Sache ist jedoch, das ich sobald ich Versuche die Kompo unter D6 zum laufen zu bringen eine lustige Acess Violation erhalte :(

Christian Seehase 18. Nov 2002 20:26

Moin Phlux,

Du müsstest Dir den TWebBrowser selber importieren können über:

Komponente\ActiveX importieren.

Dort dann Microsoft Internet Controls auswählen und dann installieren.

Ich bin mir nur nicht sicher, ob die Kompo dann TWebBrowser oder TWebBrowser_V1 ist.

Da es sich beim WebBrowser um ein OleControl handelt ist es auch möglich, dass dieses anders erzeugt werden muss, als ich das getan habe. Ich versuche das aber noch herauszubekommen.

Wird die WebBrowser Kompo innerhalb der Komponente erzeugt, ist der Owner das Panel. Legt man ein normales Panel auf das Formular, und dann darauf einen WebBrowser so ist der Owner das Formular :shock:
Leider ist mir im Moment nicht so ganz der Zusammenhang klar :?

phlux 18. Nov 2002 20:38

Also, ich habe mir mal bei Akte X gedanken gemacht, ich glaube die einfachste Methode ist es wohl einfach eine normale ListView zu nehmen den Style auf vsIcon zu setzten und dann für LargeImages eine Imagelist zu wählen in die man einfach 128*96 Pixel große Thumbnails einsetzt :o is glaub ich der faule weg, der nich so ambitioniert ist wie deiner ;) , werds aber wohl erstmal damit versuchen.

Christian Seehase 18. Nov 2002 20:55

Moin Phlux,

noch eine Idee dazu:
Wenn's so läuft wie Du es Dir vorstellst, und das Ganze dann erweitern möchtest, könnest Du ja mal versuchen statt eines WebBrowsers für die Anzeige ein TImage zu verwenden.

Bei dem WebBrowser weiss ich im Moment auch noch nicht, wie ich den zur Laufzeit korrekt erzeugen muss.
TWebBrowser.Create scheint jedenfalls einigermassen falsch zu sein :?

Luckie 18. Nov 2002 20:56

Nur gut, dass du kein Dragon Ballz gekuckt hast. :roll:

Christian Seehase 18. Nov 2002 21:10

:?:

Daniel B 18. Nov 2002 21:27

@Luckie, das hab ich jetzt nicht kapiert.
@Christian, das ist eine Zeichentrick Sendung. So ne jap. Manga geschichte, wo sich alle die ganze Zeit verprügeln. Mit Superkräften usw. Dennoch hab ich den zusammenhang nicht verstanden.

Grüsse, Daniel :hi:

Luckie 18. Nov 2002 21:30

Na ja wenn ihm das bei Akte X eingefallen ist, dann können wir froh sein, dass er kein Dragon Ballz gekuckt hat. Wer weiß, was ihm da schreckliches eingefallen wäre. So war das gemeint.

Christian Seehase 18. Nov 2002 21:34

Moin Luckie,

wär' ganz hilfreich gewesen, wenn Du dazugeschrieben hättest, das Du Phlux gemeint hast ;-)
Also ich für meinen Teil hab' WWM gesehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:00 Uhr.
Seite 2 von 3     12 3      

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