vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 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

Fortgeschrittene Programmierung
Re: Drag&Drop / OLESetData 
Autor: Breaker
Datum: 18.09.03 09:46



Private Sub lvw_DblClick()
 
On Error Resume Next
 
For c = 1 To tvw.SelectedItem.Children + 1
 
    If lvw.ListItems(c).Selected = True And lvw.ListItems(c).SubItems(3) <> _
      "" Then
        strNodeKey = lvw.ListItems(c).Key
        Set tvw.SelectedItem = tvw.Nodes(strNodeKey)
        tvw_NodeClick tvw.SelectedItem
        Exit Sub
    End If
 
Next c
 
End Sub
 
Private Sub lvw_MouseDown(Button As Integer, Shift As Integer, x As Single, _
 y As Single)
    bDrag = True
    bStatic = True
End Sub
 
Private Sub lvw_MouseMove(Button As Integer, Shift As Integer, x As Single, _
 y As Single)
 
    If Not bDrag Then Exit Sub
    Set li = lvw.HitTest(x, y)
 
    If li Is Nothing Then
        Exit Sub
    Else
        lvw.OLEDrag
    End If
 
    Set li = Nothing
End Sub
 
Private Sub lvw_MouseUp(Button As Integer, Shift As Integer, x As Single, y As _
  Single)
    bDrag = False
End Sub
 
Private Sub lvw_OLECompleteDrag(Effect As Long)
    bDrag = False
End Sub
 
'Die Funktion extrahiert per Drag&Drop
Private Sub lvw_OLESetData(Data As ComctlLib.DataObject, DataFormat As Integer)
 
If bStatic Then
    For a = 1 To lvw.ListItems.Count
 
        ' Array-Größe dynamisch vergössern (verdoppeln)
        ElemCount = ElemCount + 1
        If ElemCount > ElemUBound Then
          ElemUBound = 2 * ElemCount
          ReDim Preserve UnZipInhalt(ElemUBound)
        End If
 
 
        If lvw.ListItems(a).Selected = True And lvw.ListItems(a).SubItems(3) = _
          "" Then
            'Name der zu entzippenden Datei
            UnZipDatei = lvw.ListItems(a).SubItems(5)
            UnZipFile = ""
 
 
            UnZipInhalt(a) = lvw.ListItems.Item(a).Text
            UnZipPfad = lvw.ListItems(a).SubItems(4)
            If UnZipPfad <> "" Then UnZipPfad = UnZipPfad & "\"
            UnZipFile = UnZipFile & " " & Chr(34) & UnZipPfad & UnZipInhalt(a) _
              & Chr(34)
 
            UnZipFile = Replace(UnZipFile, "/", "\")
 
'Dieser Code ist für das extrahieren der zip-Datei zuständig ()
'-----------------------------------------------------------------------------
            'Initialisierung der zu entzippenden Datei
            duz1.ZIPFile = UnZipDatei
            'Initialisierung der zu entpackenden Datei(en)
            duz1.Filespec = UnZipFile
            'Initialisierung des Zielortes
            duz1.Destination = TempDir & "Catzip"
            'Unterordner werden nicht mitentpackt
            duz1.NoDirectoryNamesFlag = True
            'Überschrieben ohne Nachfrage
            duz1.OverwriteFlag = True
            'Rekursives durchsuchen der Ordner
            duz1.RecurseFlag = True
            'deaktiviert die Identifizierung der zu extrahierenden Datei per 
            ' Index
            duz1.UnZIPIndex = -1
            'Ordner ohne Inhalt werden ignoriert
            duz1.NoDirectoryItemsFlag = True
            'Die eigentliche Extraktion
            duz1.ActionDZ = 8
'-----------------------------------------------------------------------------
 
            Data.Files.Add (TempDir & "Catzip\" & lvw.ListItems.Item(a).Text)
        End If
    Next a
 
    ' Überflüssigen Speicher freigeben
    ReDim Preserve UnZipInhalt(ElemCount)
 
    bStatic = False
End If
End Sub
 
 
Private Sub lvw_OLEStartDrag(Data As ComctlLib.DataObject, _
 AllowedEffects As Long)
 
    Data.Files.Clear
    Data.SetData , vbCFFiles
    AllowedEffects = vbDropEffectCopy
 
End Sub
Für die "unsaubere" Struktur will ich mich entschuldigen

Mein Ziel ist, dass ich die markierte Extrahier-Funktion erst dann starte, wenn ich mit der Maus auch wirklich ein Drag&Drop ausgeführt habe, also damit fertig bin - und danach das OLESetData starte.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Drag&Drop / OLESetData1.092Breaker17.09.03 14:11
Re: Drag&Drop / OLESetData775michi-bib17.09.03 19:47
Re: Drag&Drop / OLESetData919Breaker18.09.03 09:46
Re: Drag&Drop / OLESetData876Breaker18.09.03 09:46

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