| |

Fortgeschrittene ProgrammierungRe: 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. |  |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
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
|
|