MultiSelect в CommonDialog

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

MultiSelect в CommonDialog

Сообщение gjghjc » 30.01.2006 (Пн) 13:48

Собсно сабж.... НУ НЕТ У НЕГО ТАКОГО СВОЙСТВА...
в ВБ.НЕТ есть... а в 6-ом нет.
Какие есть идеи.. может кто сталкивался?
Спасибо за ссылки и предложения
Утро добрым не бывает!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.01.2006 (Пн) 13:54

:roll:

cdlOFNAllowMultiselect :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 30.01.2006 (Пн) 16:30

+ cdlOFNExplorer
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 30.01.2006 (Пн) 16:43

Хм... а поподробней можно????
не совсем понял кто такие cdlOFNAllowMultiselect и cdlOFNExplorer
Утро добрым не бывает!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.01.2006 (Пн) 16:49

А если нажать F2 и поискать их там?
Всё равно нет?

Лентяй :(
http://msdn.microsoft.com/library/en-us ... frame=true
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 30.01.2006 (Пн) 17:11

наверное он не знает, что можно несколько флагов задавать

Код: Выделить всё
cmd.Flags=cdlOFNAllowMultiselect + cdlOFNExplorer +...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.01.2006 (Пн) 17:16

Лучше все-таки не +, а Or.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 30.01.2006 (Пн) 17:21

да, конечно, с OR будет правильнее

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: MultiSelect в CommonDialog

Сообщение Viper » 31.01.2006 (Вт) 12:10

gjghjc писал(а):Собсно сабж.... НУ НЕТ У НЕГО ТАКОГО СВОЙСТВА...
в ВБ.НЕТ есть... а в 6-ом нет.
Какие есть идеи.. может кто сталкивался?
Спасибо за ссылки и предложения


а нет свойства у кого/чего? Если имеется ввиду структура OPENFILENAME, то действительно нет такого свойства (поля), а есть поле Flags (что с ним делать, написано выше)... Может что-то другое имеется ввиду, а мы не догоняем?
Весь мир матрица, а мы в нем потоки байтов!

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 31.01.2006 (Вт) 13:58

а как же пробелы?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.01.2006 (Вт) 14:06

А причём здесь пробелы?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 01.02.2006 (Ср) 14:37

Спасибо всем... с флагами разобрался.
Теперь следующий вопрос
КАК победить ограничение в 256 байт на FileName??
Потому как временами нужно до сотни файлов выделять :oops:
Утро добрым не бывает!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.02.2006 (Ср) 16:34

gjghjc, друг мой... Когда выскакивает ошибка, что буфер слишком мал, там, в тексте этой ошибки, в скобках написаны слова... прочитай их, а?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 02.02.2006 (Чт) 11:59

в каком месте написано, что lpstrFile имеет ограничение в 256 байт? Данный буфер должен содержать как минимум 256 байт, а если длина файла (файлов) превысит размеры буффера, то при возвращении из функции первые два байта буфера как раз и будут содержать необходимый размер... Одним словом вперед в MSDN!!!
Весь мир матрица, а мы в нем потоки байтов!

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 03.02.2006 (Пт) 9:43

2 GSerg: а ты возьми с такими флагами открой два и более файлов, чтобы в путях были пробелы!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.02.2006 (Пт) 9:51

Открыл. Что делать теперь?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 03.02.2006 (Пт) 10:34

у меня почему-то пишеться только та часть имения файла, которая находится левее от пробела

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.02.2006 (Пт) 11:57

2Sirik не в .NET открываешь часом? Там есть кой-какие странности при выборе нескольких файлов...
Весь мир матрица, а мы в нем потоки байтов!

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 03.02.2006 (Пт) 12:33

нет, на родном VB6 Sp5

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 03.02.2006 (Пт) 13:47

Sirik писал(а):у меня почему-то пишеться только та часть имения файла, которая находится левее от пробела

А куда именно она пишется?
Если всё делать своими ручками, они скоро отвалятся !

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.02.2006 (Пт) 18:13

Sirik выложи код, где у тебя странности с пробелами при выборе нескольких файлов

З.Ы. а пробелы ли там вообще? не нуль-терминатор? MSDN рядом нет, идти смотреть лень...
Весь мир матрица, а мы в нем потоки байтов!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.02.2006 (Пт) 19:02

Если стоит стиль cdlOFNExplorer, то имя папки и следующие за ней имена выбранных файлов будут разделяться нуль-терминаторами, а в конце строки нуль-терминаторов будет два. А если данного стиля нет, то действительно будут пробелы.

Если в качестве разделителя нуль-терминатор, то если просто вывести строку на печать, то выведется только то, что до первого из них, то есть имя папки. Надо делить строку
Весь мир матрица, а мы в нем потоки байтов!

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 04.02.2006 (Сб) 9:09

Випер, молодец!

проблемма была с msgbox'ом


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 86

    TopList