Вверх ↑
Этот топик читают: Гость
Ответов: 1161
Рейтинг: 160
#1: 2008-10-17 21:40:08 ЛС | профиль | цитата
Скажите, почему, если в строку адреса ввести адрес папки без символа , диалог открывает его как файл(т.е. выводит имя папки в поток)
code_10306.txt
------------ Дoбавленo:

Балин кривые мои руки - тема типа называется OpenDialog
карма: 0

0
файлы: 1code_10306.txt [394B] [137]
Ответов: 110
Рейтинг: 9
#2: 2008-10-17 21:49:02 ЛС | профиль | цитата
Логически все правильно - слэш в конце однозначно указывает на то что это папка.
Видимо алгоритм так работает - все что за последним слэшем - имя файла.
карма: 0

0
Ответов: 5227
Рейтинг: 587
#3: 2008-10-17 22:00:55 ЛС | профиль | цитата
LainX, попробуй ход конём


#sha
Add(MainForm,2953706,154,168)
{
}
Add(ODialog,15998065,371,182)
{
StartDir=""
FileName=""
Point(doStartDir)
link(onExecute,3375186:doText,[])
}
Add(Button,3451670,217,182)
{
Left=5
Top=30
link(onClick,2881172:doData,[])
}
Add(Label,3375186,427,182)
{
Left=65
Top=30
}
Add(DoData,2881172,266,182)
{
Data=String(C:Program Files;имя файла)
link(onEventData,4470807:doSplit,[])
}
Add(StrPart,4470807,315,182)
{
Char=";"
link(onSplit,15998065:doExecute,[])
link(onPart,15998065:doStartDir,[])
}

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 1161
Рейтинг: 160
#4: 2008-10-17 22:34:12 ЛС | профиль | цитата
Ну EvgIg логика конечно правильно, но есть одно НО... Даже при попытке ткнуть в среде Hiasm папку без слеша на конце(тот же Crogram Files), то он откроет папку, а не откроет ее как проект.
andrestudio, это не решение - если я выберу другую папку, то это уже не поможет
С таким ходом коня и недалеко до мата
Ну набросал схемку по этому поводу(ну еще примочка в ней есть на существование файла)
code_10307.txt
------------ Дoбавленo:

Но такой метод муторный, и надоест быстро(не хочется вставлять мультики туда и сюда)
карма: 0

0
файлы: 1code_10307.txt [1KB] [144]
Ответов: 5227
Рейтинг: 587
#5: 2008-10-17 22:59:30 ЛС | профиль | цитата
LainX, и что мешает выбрать другю папку

Add(StrCat,16428973,217,308)
{
Str2=";имя файла"
}

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 1161
Рейтинг: 160
#6: 2008-10-17 23:01:18 ЛС | профиль | цитата
Add(StrCat,16428973,217,308)
{
Str2=";имя файла"
}

че там ; делает?
карма: 0

0
Ответов: 5227
Рейтинг: 587
#7: 2008-10-17 23:02:54 ЛС | профиль | цитата
а что рыба нужна
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 1161
Рейтинг: 160
#8: 2008-10-17 23:04:44 ЛС | профиль | цитата
andrestudio писал(а):
а что рыба нужна

селедка
Ну а правда, почему другие приложения открывают папки, а приложения в Hiasm выводят папку как "файл"?
карма: 0

0
Ответов: 5227
Рейтинг: 587
#9: 2008-10-17 23:14:49 ЛС | профиль | цитата
LainX, выкладывай что хочешь и что должно получится, вот и порешаем твой ребус.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 110
Рейтинг: 9
#10: 2008-10-18 00:20:24 ЛС | профиль | цитата
LainX писал(а):
Даже при попытке ткнуть в среде Hiasm папку без слеша на конце(тот же C:\Program Files), то он откроет папку, а не откроет ее как проект.

Действительно, разница есть.
------------ Дoбавленo:

Лучше делать так:

Add(ODialog,15998065,224,98)
{
StartDir=""
FileName=""
Point(doStartDir)
link(onExecute,3375186:doText,[])
}
Add(Button,3451670,49,77)
{
Left=5
Top=30
link(onClick,15452239:doEvent1,[])
}
Add(Label,3375186,273,98)
{
Left=65
Top=30
}
Add(DoData,2881172,154,112)
{
Data=String(C:\Program Files)
link(onEventData,15998065:doStartDir,[(205,118)(205,111)])
}
Add(Hub,15452239,105,77)
{
link(onEvent1,2881172:doData,[(142,83)(142,118)])
link(onEvent2,15998065:doExecute,[(181,90)(181,104)])
}

doExecute берет имя файла и соответственно бъет строчку.
Это два разных диалога - в HiAsm'e диалог открытия файла, а здесь файла или каталога. Посему и поведение разное.

------------ Дoбавленo:

Выбери в среде ODialog, нажми Ctrl+F в открывшемся окне найди первую строчку OSNoValidate, поменяй ее на OSPathMustExist и сохрани- будет то что надо
(надеюсь знатоки поправят, ежли я не прав)
карма: 0

1
Голосовали:LainX
Ответов: 1161
Рейтинг: 160
#11: 2008-10-18 18:00:25 ЛС | профиль | цитата
EvgIg писал(а):
Выбери в среде ODialog, нажми Ctrl+F в открывшемся окне найди первую строчку OSNoValidate, поменяй ее на OSPathMustExist и сохрани- будет то что надо

Спасибо большое - теперь работает!
карма: 0

0
Ответов: 110
Рейтинг: 9
#12: 2008-10-18 22:01:40 ЛС | профиль | цитата
LainX,
Всетаки надо попросить знатоков, чтобы добавили OSPathMustExist в компанент. А то у тебя он будет "подпатченный"
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#13: 2008-10-18 22:47:53 ЛС | профиль | цитата
Специально проверил, что вы тут натворили. Муть получилась изрядная.

Внимательно читаем описание флагов

OFN_PATHMUSTEXIST - определяет, что пользователь может указать только существующий путь и имена файлов

Что означает, если такого пути или файла нет, то диалог не создасться вообще.

Смотрим ситуацию с таким вариантом (флаг OSPathMustExist установлен)
Crogram Files -- диалог не создается вообще
Crogram Files -- диалог создается и Program Files пропихивается в диалог как имя файла (на кой черт он там нужен ???)

Подход должен быть совсем другой -- диалог должен создаваться всегда (флаг OSNoValidate вернуть на место), а вот FOpenDialog.Filename должен быть равен пусто, если это папка и на выход и в диалог не попадать


карма: 22

0
Ответов: 1161
Рейтинг: 160
#14: 2008-10-18 22:50:53 ЛС | профиль | цитата
nesco писал(а):
Crogram Files -- диалог не создается вообще

Ну у меня создается и
nesco писал(а):
Program Files пропихивается в поток как файл

Но вообще то это мне и нужно...
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#15: 2008-10-18 22:52:54 ЛС | профиль | цитата
LainXz , я немного ошибся, наоборот надо слэши в описании работы. Исправил пост.

Но мне не нравится, что по Crogram Files диалог не создается, а ведь должен, это папка, а не файл

И объясни, зачем в поток конечную папку пропихивать? Туда должны файлы попадать, а не папки. См. описание точки


onExecute=Событие происходит всякий раз при нажатие кнопки ОК (файл выбран)

карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)