Farbschema: Dunkel
Sie befinden sich hier: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Sprejemanje datotek, povlečenih iz Raziskovalca

Sprejemanje datotek, povlečenih iz Raziskovalca

Uporabnikom omogočite, da dokumente, slike ali mape iz Raziskovalca povlečejo na zapis mreže ali vozlišče drevesa, in jih shranite tako, kot potrebuje vaša aplikacija: kot zapise, kot poti v polju ali kot kopije v mapi.

Zahteva WKL Forms Object Library 1.57 ali novejšo različico.

Pregled rešitve

Z AllowFileDrop = True kontrolniki WklGrid, WklTreeList, WklGantt in WklTreeView sprejemajo datoteke iz Raziskovalca. Med vlečenjem dogodek FileDragOver sporoči vsak nov cilj, ki ga lahko zavrnete s Cancel; po spustu dogodek FileDrop sporoči celotne poti, ključ ciljnega zapisa ali vozlišča in položaj. Kontrolnik sam ne zapiše ničesar: vaša koda v FileDrop odloči, kaj postanejo datoteke, Requery pa nato prikaže nove zapise.

Izvedba

Mreža grdDokumenti prikazuje tabelo tblDokumenti (ID s samoštevilom, StrankaID, ImeDatoteke, PotDatoteke) trenutne stranke. Spuščene datoteke postanejo zapisi te stranke; mape so zavrnjene že med vlečenjem.

Private Sub Form_Load()
    Me!grdDokumenti.Object.AllowFileDrop = True    ' or in the designer: page Behavior, card Files from Explorer
End Sub
 
Private Sub grdDokumenti_FileDragOver(ByVal Files As Variant, ByVal TargetKey As Variant, _
        ByVal Position As Long, Cancel As Integer)
    Dim path As Variant
    For Each path In Files
        If (GetAttr(path) And vbDirectory) = vbDirectory Then Cancel = True: Exit Sub
    Next
End Sub
 
Private Sub grdDokumenti_FileDrop(ByVal Files As Variant, ByVal TargetKey As Variant, ByVal Position As Long)
    Dim path As Variant
    For Each path In Files
        CurrentDb.Execute "INSERT INTO tblDokumenti (StrankaID, ImeDatoteke, PotDatoteke) VALUES (" & Me!ID & ", '" & _
            Replace(Mid$(path, InStrRev(path, "\") + 1), "'", "''") & "', '" & Replace(path, "'", "''") & "')", dbFailOnError
    Next
    Me!grdDokumenti.Object.Requery
End Sub

Opombe

  • Argumenti: Files je polje celotnih poti z začetnim indeksom 0 (uporabite For Each ali UBound); TargetKey je ključ zapisa ali vozlišča pod miško oziroma Null pod zadnjim, na vrstici skupine in na vrstici za nov zapis; Position je WklDropPosition (wdpBefore, wdpAfter, wdpInside), zato lahko drevo datoteko postavi pred vozlišče, za njega ali podenj.
  • FileDragOver naj bo kratek. Raziskovalec med vlečenjem čaka nanj. FileDrop se izvede, ko je spust že končan, zato lahko prikazuje sporočila, kopira datoteke ali kaj vpraša uporabnika.
  • Samo datoteke. Besedilo iz Worda, sporočilo iz Outlooka ali vozlišča, ki jih vleče kontrolnik sam, niso datoteke; kontrolnik jih zavrne brez dogodka. Če želite sprejemati sporočila ali priloge, jih najprej shranite v mapo.
  • Samo v pogledu obrazca. V pogledu načrta in v poročilih kontrolnik ne sprejema datotek.
  • Deklaracije dogodkov: Position deklarirajte kot Long ali kot WklDropPosition (za slednje potrebujete sklic na knjižnico WKL Forms Object Library); Cancel mora biti podan po sklicu (Cancel As Integer).
  • Nastavitev se shrani z obrazcem. Ne spremeni lastnosti AllowDragDrop, ki premika vozlišča znotraj drevesa.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/accept-files-from-explorer.txt · Zuletzt geändert: von Wolfgang van der Stille