Tipp 0243 Liste der zuletzt geöffneten Dateien
Autor/Einsender:
Datum:
  Detlev Schubert
06.06.2002
Entwicklungsumgebung:   VB 5
Das Collection-Objekt spielt bei Visual Basic 6 die Rolle eines universellen Datenbehälters. Im Prinzip können Sie speichern, was Sie möchten.
Fast alle professionellen Anwendungen bieten in ihrem Datei-Menü eine Liste der zuletzt geöffneten Dateien an. Diese Liste sollte in der Regel nicht endlos anwachsen, sie sollte vielmehr z. B. auf die letzten 4, 8 oder 10 Einträge beschränkt sein. Bei der Liste unsere Tipps handelt es sich um eine typische First-In-First-Out-Datenstruktur (also einen Stack mit fester Größe).
Sobald die Liste voll ist, wird das zuerst eingefügte durch das neu eingefügte Element ersetzt. Eine solche Datenstruktur realisieren wir über ein Dictionary-Objekt. Mit dem PropertyBag-Objekt, oder aber auch in einer INI-Datei oder in der Registry, lassen sich die Einträge auch dauerhaft speichern und wieder einlesen.
 
Option Explicit

Private dicMRU As Scripting.Dictionary

Private Sub Form_Load()
  Set dicMRU = New Scripting.Dictionary
End Sub

Private Sub mnuÖffnen_Click()
  Dim sDateiPfad As String
  Static iMRU As Integer

  With CdlDatei
    .InitDir = App.Path
    .DialogTitle = "Wählen Sie eine Datei, bitte"
    .Filter = "Visual Basic-Module (*.vbp)|*.vbp|Alle Dateien|*.*"
    .ShowOpen
    If .FileName <> "" Then
      sDateiPfad = .FileName
    End If
  End With

  If dicMRU.Count <= 3 Then
    dicMRU.Add Item:=sDateiPfad, Key:=CStr(dicMRU.Count + 1)
  Else
    iMRU = iMRU Mod 4 + 1
    dicMRU.Item(CStr(iMRU)) = sDateiPfad
  End If
  MRUAufliste
End Sub

Sub MRUAufliste()
  Dim i As Integer

  For i = 1 To dicMRU.Count
    If i = mnuMRU.Count Then Load mnuMRU(i)
    mnuMRU(i).Caption = dicMRU.Item(CStr(i))
    mnuMRU(i).Visible = True
  Next
End Sub

Private Sub mnuMRU_Click(Index As Integer)
  MsgBox dicMRU.Item(CStr(Index))
End Sub
 
Hinweis
Um diesen Tipp ausführen zu können, muss die Bibliothek Microsoft Scripting Runtime (SCRRUN.DLL) als Verweis in das Projekt eingebunden werden.

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (2,9 kB) Downloads bisher: [ 1286 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 20. August 2011