Via commondialog so vill jag få in filer i en listbox. Hej Om du ska använda Multiselect med GetOpenFile dialogen rekomenderar jag API istället. Eftersom den avgränsar filerna med nulltecken. Vilket jag tycker är enklare att hantera. Dessutom så slipper man distrukerar kontrollen med i installationen. Jo det är nog så. Jsut nu så ser filerna ut så här: Skriv så här:Listbox och commondialog!!(LÖST)
Problemet som jag har är att jag vill ha multiselect. Jag måste väl "slå sönder" strängen, men kommer inte på hur jag skall göra.
Så här försöker jag:
<code>
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
CommonDialog1.Flags = cdlOFNAllowMultiselect
CommonDialog1.Filter = "Wave (*.wave)|*.*|Mp3 (*.mp3)"
CommonDialog1.FilterIndex = 2
CommonDialog1.ShowOpen
'MsgBox CommonDialog1.FileName
songlista.AddItem CommonDialog1.FileName
Exit Sub
ErrHandler:
'User pressed the Cancel button
Exit Sub
</code>
Fråga 2:
Som det nu är, när man öppnar dialogrutan, så ligger mp3 som default, hur kan jag göra för att få wve som default?
( CommonDialog1.Filter = "Wave (*.wave)|*.*|Mp3 (*.mp3)")
Några förslag?Sv: Listbox och commondialog
Mycket bättre att du använder en FileListBox
som du kopplar till CommonDialog.
mvh
SvenSv: Listbox och commondialog
I vilket fall kan du då bara markera en eller flera filer från en katalog.Sv: Listbox och commondialog
F:\SAW\JUST_AS_I_RECALL\CD_MUSIK\JUST_AS_I_RECALL\ AMEMOR~1.WAV BRINGB~1.WAV FORGOT~1.WAV
Jag ville ju ha det på olika rader. Hur fixar man ett sådant API?
Jag tror nog att jag har gått igenom hela hjälpen idag, plus alla tipsen här, men inte hjälper det.
Sammtidigt, går det inte att ha flera flaggor sammtidigt?
Så att jag kan ha cdlOFNAllowMultiselect och cdlOFNLongNames?Sv: Listbox och commondialog
<code>
Private Sub cmdAdd_Click()
Dim Path As String
Dim Index As Long
Dim Files() As String
On Error GoTo ErrHandler
CommonDialog1.CancelError = True
CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNLongNames Or cdlOFNExplorer
CommonDialog1.Filter = "Wave (*.wave)|*.*|Mp3 (*.mp3)"
CommonDialog1.FilterIndex = 1
CommonDialog1.ShowOpen
If InStr(CommonDialog1.FileName, vbNullChar) Then
Files = Split(CommonDialog1.FileName, vbNullChar)
Path = Files(0)
If Not Path Like "*\" Then Path = Path & "\"
For Index = 1 To UBound(Files)
songlista.AddItem Path & Files(Index)
Next
Else
songlista.AddItem CommonDialog1.FileName
End If
Exit Sub
ErrHandler:
Select Case Err.Number
Case cdlCancel 'User pressed the Cancel button
Exit Sub
Case Else
MsgBox Err.Description, vbCritical
End Select
End Sub
</code>