Страница: 1 |
При вот таких флагах OFN_ALLOWMULTISELECT Or OFN_EXPLORER возникла еще одна проблема. Диалог возвращает строку (CmnDlg.FileName) с именами файлов, разделенными пробелами. Потом её можно разбить в массив с помощью Split. Но если в имени файла тоже есть пробелы, что делать? Можно ли поменять разделитель у диалога? Может ещё какие-нибудь советы или варианты?
ребята полбзуйтесь API а то какие вы на...... иг програмисты 'модуль Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Public Type OPENFILENAME вот почти вса флаги Public lFlags As Long ' в кнопку With opFile ' сами смотрите что нужно opFile.lpstrFile или opFile.lpstrFileTitle p.s. анегдот приходит молодой програмист к опытному, дает исходник своей программы и говорит - Где у меня ошибка? опытный посмотрел и говорит - В генах! ошибочка строку .hWndOwner = gen.hWnd замени на .hWndOwner = me.hWnd alp, анекдот старый, но может ты и прав? Спасибо за помощь!!! cresta, спасибо за предложение, но хочется всё-таки своими ручками писать, чтобы небыло как в анекдоте! скинь мне на alp-10@mail.ru Страница: 1 |
Вопрос: И снова Common Dialog!
Добавлено: 08.12.03 12:18
Автор вопроса: Ворон | ICQ: 178095693
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
alp
Вопросов: 3
Ответов: 6
Web-сайт:
Профиль | | #1
Добавлено: 08.12.03 14:48
Public Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
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
lPWCFilenHook As Long
lpTemplateName As String
End Type
Public lFlags As Long
Public opFile As OPENFILENAME
Public Const OFN_ALLOWMULTISELECT = &H200
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_PATHMUSTEXIST = &H800
Public Const OFN_ENABLEINCLUDENOTIFY = &O400000
Public Const OFN_HIDEREADONLY = &H4
Public Const OFN_LONGNAMES = &H200000
Public Const OFN_EXPLORER = &H80000
Public Const OFN_ENABLESIZING = &H800000
Public Const OFN_CREATEPROMPT = &H2000
.hWndOwner = gen.hWnd
.flags = lFlags Or OFN_ALLOWMULTISELECT Or OFN_EXPLORER
'.lpstrInitialDir = App.Path
.lpstrTitle = temps
.lpstrFilter = "All" & vbNullChar & "*.*"
.lpstrFile = String(2047, " ")
.nMaxFile = 2048
.lpstrFileTitle = String(2047, " ")
.nMaxFileTitle = 2048
.lStructSize = Len(opFile)
End With
If GetOpenFileName(opFile) <> 0 Then
temps = Mid(opFile.lpstrFile, 1, InStrRev(opFile.lpstrFile, vbNullChar, -1) - 1) ' строка удаляет нулевой символ в конце
Label1.caotion=temps
End If
Номер ответа: 2
Автор ответа:
alp
Вопросов: 3
Ответов: 6
Web-сайт:
Профиль | | #2
Добавлено: 08.12.03 14:55
Номер ответа: 3
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #3
Добавлено: 08.12.03 21:37
Я пользуюсь модулем, там и выбор файлов и выбор папок, и цвет, и принтер и ещё чего-то(уже не помню). Там без ComDlg и имена возвращаются в массиве. Может скинуть на ящик?
Номер ответа: 4
Автор ответа:
Ворон
ICQ: 178095693
Вопросов: 6
Ответов: 24
Профиль | | #4
Добавлено: 09.12.03 09:27
Номер ответа: 5
Автор ответа:
alp
Вопросов: 3
Ответов: 6
Web-сайт:
Профиль | | #5
Добавлено: 09.12.03 15:05