vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Just Explorer-Like  
Autor: ModeratorDieter (Moderator)
Datum: 27.12.01 23:19

Hallo WhiteWolf,

hier nun der versprochene Code:
Benötigt wird eine Form, darauf ein ListView-Control, dazu noch ein ImageList-Control mit zunächst einer fest zugeordneten Abbilung (Bildsymbol): und zwar ein Ordnersymbol.

Alles andere wird per Code erledigt:
Option Explicit
 
<font color=green>' zunächst die benötigten API-Deklarationen</font>
Private Type TPictDesc
  cbSizeofStruct As Long
  PicType As Long
  hImage As Long
  xExt As Long
  yExt As Long
End Type
 
Private Type TGUID
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(0 To 7) As Byte
End Type
 
Private Declare Function ExtractAssociatedIcon Lib _
  "shell32.dll" Alias "ExtractAssociatedIconA" _
  (ByVal hInst As Long, ByVal lpIconPath As String, _
  lpiIcon As Long) As Long
 
Private Declare Function OleCreatePictureIndirect Lib _
  "olepro32.dll" (ByRef lpPictDesc As TPictDesc, _
  ByRef RIID As TGUID, ByVal fPictureOwnsHandle As Long, _
  ByRef IPic As IPicture) As Long
Der nachfolgende Code ermittelt alle Ordern, sowie Dateien eines bestimmten Ordners (sPath) und zeigt diese in einem ListView-Control an, wobei die Icons der Dateien automatisch ermittelt und der ImageList dynamisch hinzugefügt werden.
<font color=green>' ImageList dem ListView zuordnen</font>
Set ListView1.LargeIcons = ImageList1
Set ListView1.SmallIcons = ImageList1
 
<font color=green>' alle Dateien eines Ordner ermitteln und in einem
' ListView-Control (á la Explorer) darstellen</font>
Dim sPath As String
Dim FSO As Object
Dim Folder As Object
Dim x As Integer
Dim itemX As ListItem
Dim Ordner As Object
Dim Datei As Object
 
sPath = "d:	emp"
If Right$(sPath, 1) <> "\" Then sPath = sPath & "\"
 
<font color=green>' FSO initialisieren</font>
'Set FSO = New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
 
<font color=green>' Startordner</font>
Set Folder = FSO.GetFolder(sPath)
 
<font color=green>' zunächst alle SubFolders ermitteln</font>
With ListView1.ListItems
  For Each Ordner In Folder.SubFolders
    Set itemX = .Add(, , Ordner.Name, , 1)
  Next
End With
 
<font color=green>' jetzt alle Dateien des Ordners ermitteln und
' das entsprechende ICON ermitteln (und anzeigen)</font>
With ListView1.ListItems
  For Each Datei In Folder.Files
    <font color=green>' Icon der Datei ermitteln</font>
    AddIconToImageList ImageList1, _
      sPath & Datei.Name, 0
    Set itemX = .Add(, , Datei.Name, , ImageList1.ListImages.Count)
  Next
End With
So, das war's.

Cu
Dieter
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ListView füllen65WhiteWolf27.12.01 17:13
Re: ListView füllen270ModeratorDieter27.12.01 19:46
Danke34WhiteWolf27.12.01 20:32
Just Explorer-Like 290ModeratorDieter27.12.01 23:19
Wir nennen Das: Die@Plorer (oT)242unbekannt27.12.01 23:29
Re: Just Explorer-Like 40WhiteWolf28.12.01 21:34
Frage!?79WhiteWolf29.12.01 19:42
Re: Frage!?333ModeratorDieter29.12.01 21:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel