Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Выборочное добавление файлов в списки


Автор: manowar 1.8.2005, 23:04
smile никак не могу понять как реализовать выборочное добавление файлов из CommonDialog с Flag = 512 в FileList или ListBox или на худой конец из ActiveX-контрола MhCommonDialog от http://www.becubed.com в FileList или ListBox
Вот фрагмент ихнего хелпа по поводу одного, как мне кажется нужного Property:

FileNameList Porperty (7.0)

The FileNameList property returns an array of the FileNames that are selected in a File Dialog. Cycle through the array until you get a NULL which signifies the end of the list.

Syntax
[form!]MhCommonDialog.FileNameList(index As Integer) as string

Data Type

String

контрол еси надо лежит тута www.vprograms.narod.ru/MhCommonDialog.ocx

кроме этого Property там ещё есть FileName и FileTitle, и всё!(что касается непосредственно файлов)

Автор: bom 2.8.2005, 01:18
Цитата(manowar @ 1.8.2005, 23:04)
не могу понять как реализовать выборочное добавление файлов из CommonDialog с Flag = 512

Под выборочным добавление, как я понимаю, подразумевается многократный выбор (Multiselect). Ну, ты сам ответил - использовать константу OFN_ALLOWMULTISELECT. А в чем проблема?
По поводу тонкостей работы с нестандартными ActiveX-контролами надо наверное обращаться к их авторам или к докумментации на эти контролы.

Автор: manowar 2.8.2005, 23:34
Цитата
А в чем проблема?
Всё дело в том как именно реализовать передачу массива выделенных строк(код еси мона please) из вышеозначенных контролов или коммондиалогов в вышеозначенные файллисты и листбоксы smile Please HELP me!!!

Автор: bom 3.8.2005, 09:44
Код

'Module
Option Explicit
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME
 lStructSize       As Long
  hwndOwner         As Long
  hInstance         As Long
  lpstrFilter       As String
  lpstrCustomFilter As String
  nMaxCustFilter    As Long
  nFilterIndex      As Long
  lpstrFile         As String
  nMaxFile          As Long
  lpstrFileTitle    As String
  nMaxFileTitle     As Long
  lpstrInitialDir   As String
  lpstrTitle        As String
  flags             As Long
  nFileOffset       As Integer
  nFileExtension    As Integer
  lpstrDefExt       As String
  lCustData         As Long
  lpfnHook          As Long
  lpTemplateID      As Long
End Type
Dim OFN As OPENFILENAME

Public Function Showopen(hParent As Long, Optional mFilter As String, Optional mInitDir As String, _
Optional mTitle As String) As String
OFN.lStructSize = Len(OFN)
OFN.hwndOwner = hParent
OFN.hInstance = App.hInstance
OFN.lpstrFile = Space$(254)
OFN.lpstrFilter = mFilter
OFN.nMaxFile = 511
OFN.lpstrFileTitle = Space$(254)
OFN.nMaxFileTitle = 511
OFN.lpstrInitialDir = mInitDir
OFN.lpstrTitle = mTitle
OFN.flags = &H1000 Or &H4 Or &H80000 Or &H200
If GetOpenFileName(OFN) Then
    Showopen = OFN.lpstrFile
    Else
    Showopen = ""
End If
End Function


Код

'Form
Option Explicit

Private Sub Command1_Click()
Dim sArray() As String, i As Integer
sArray = Split(Showopen(Me.hWnd, "All files" + Chr(0) + "*.*" & Chr(0) & "Text files" _
& Chr(0) & "*.txt" & Chr(0), "This is OFNAPI test"), Chr(0))
Select Case UBound(sArray)
    Case Is < 2
    Exit Sub
    Case 2
    List1.AddItem sArray(0)
    Case Else
    For i = 1 To UBound(sArray) - 2
     List1.AddItem sArray(0) & "\" & sArray(i)
    Next i
End Select
End Sub

Автор: manowar 3.8.2005, 17:14
smile большое человеческое THANKS!!!!! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)