FreeBasic
Главная
Вход
Регистрация
Четверг, 05.12.2024, 19:03Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
OpenFileRequester и SaveFileRequester
serg266Дата: Четверг, 18.07.2019, 22:33 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
Прошу подсказать как "заставить" открывать по умолчанию текущую (свою) папку, т.е. паку, из которой запущена программа с этими функциями. Всегда открывает папку предыдущую.
Попробовал использовать GetCurentDir(), но не реагирует (см. пример). 
Код
#Include "window9.bi"
Dim Katal As String
Katal=GetCurentDir()
? Katal: Sleep
? OpenFileRequester("","Katal","Text files (*.txt, *.ini, *.doc)"_
+Chr(0)+"*.txt;*.ini;*.doc"+Chr(0)) ', OFN_NOCHANGEDIR)
Sleep
? SaveFileRequester("","Katal","Text files (*.txt, *.ini, *.doc)"_
+Chr(0)+"*.txt;*.ini;*.doc"+Chr(0))
Sleep
 
haavДата: Пятница, 19.07.2019, 04:32 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Код
#Include "window9.bi"
Dim Katal As String
Katal=GetCurentDir()
? Katal: Sleep
? OpenFileRequester("",Katal,"Text files (*.txt, *.ini, *.doc)"_
+Chr(0)+"*.txt;*.ini;*.doc"+Chr(0)) ', OFN_NOCHANGEDIR)
Sleep
? SaveFileRequester("",Katal,"Text files (*.txt, *.ini, *.doc)"_
+Chr(0)+"*.txt;*.ini;*.doc"+Chr(0))
Sleep


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
serg266Дата: Четверг, 25.07.2019, 22:57 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
Большое спасибо. Не заметил,  что в примере String в кавычках. В своей программе без кавычек. Всё равно, указанный путь (в свою папку) отрабатывает только при первом запуске программы, потом только по последней папке. При переносе программы в другую папку, также на Katal=GetCurentDir() не реагирует, устанавливает предыдущую папку. В принципе ничего страшного нет, просто надо помнить устанавливать путь при первом запуске перенесённой программы. Как я понял, так заложено в API GetOpenFileName?
 
haavДата: Пятница, 26.07.2019, 05:35 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Цитата serg266 ()
Большое спасибо. Не заметил,  что в примере String в кавычках. В своей программе без кавычек. Всё равно, указанный путь (в свою папку) отрабатывает только при первом запуске программы, потом только по последней папке. При переносе программы в другую папку, также на Katal=GetCurentDir() не реагирует, устанавливает предыдущую папку. В принципе ничего страшного нет, просто надо помнить устанавливать путь при первом запуске перенесённой программы. Как я понял, так заложено в API GetOpenFileName?


У меня все работает как надо. Покажи пример , где возникает проблема.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
serg266Дата: Четверг, 22.08.2019, 21:58 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
Спасибо! По OpenFileRequester вопросов нет.
Но появился другой вопрос. На некоторых ПК, вернее Window-сах, перестаёт работать LTrim и LTrimA. Интересно и не понятно, почему-то в bedit при быстром запуске всё работает, а EXE "глючит" (см. скрин). На моём ПК работает нормально, Windows-7-64 (правда был сбой, но после перезагрузки всё нормально). На работе два ПК (Windows-10-64). На одном работало нормально, а на другом сбоило. Сей час не работает на обоих.
Код
#Include "window9.bi"
Dim As String Katal, NameF
Katal=GetCurentDir()
? Katal ': Sleep
   NameF=OpenFileRequester("",Katal,"Text files (*.txt, *.ini, *.doc)"+Chr(0)+"*.txt;*.ini;*.doc"+Chr(0))
? NameF
   NameF=LTrim(NameF, Katal+"\") ': ? NameF: Sleep
? NameF        
Sleep


Прикрепления: 6556364.jpg (181.2 Kb)
 
haavДата: Пятница, 23.08.2019, 06:54 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Мне кажется, или на нижнем окошке консоли в первой строке обозначение диска "C" с маленькой буквы (c:\....) ?

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
serg266Дата: Пятница, 23.08.2019, 10:42 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
Спасибо! Так, что теперь делать, так возвращает Katal=GetCurentDir(), при работе exe (OpenF_.exe) ?  В моём ПК (Windows-7-64), нормально (C:\), а в ПК на работе (Windows-10-64) сбой (c:\), как это объяснить?
 
haavДата: Пятница, 23.08.2019, 13:32 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Цитата serg266 ()
Так, что теперь делать


Используй функцию: GetFilePart

Цитата serg266 ()
В моём ПК (Windows-7-64), нормально (C:\), а в ПК на работе (Windows-10-64) сбой (c:\), как это объяснить?


Это к разработчикам win10.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
serg266Дата: Пятница, 23.08.2019, 14:14 | Сообщение # 9
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
Спасибо за совет! Обнаружил интересное. У них, на тех ПК, программа работает нормально, при запуске exe из Проводника, а при запуске из ТоталКомандор не работает. Я им поставил свой Тотал, при запуске из которого у меня всё работало. Значит просто дело в Тотале, который у них в Win-10, не очень корректно работает.

Добавлено (23.08.2019, 15:00)
---------------------------------------------
"Используй функцию: GetFilePart"
Спасибо! Попробовал, нормально. Зачем только морочил себе и вам головы с Ltrim. Вы меня извините, но я ещё тот "программист", тем более под Windows. Остался на уровне DOS (QB-7.1) и использую похожее, не владея возможностями API и Window9. Пишу чисто расчётные программы? Главное получить результат, оболочка, как получится. Только благодаря FB (с поддержкой QB), с русским Help, и вашей  Window9, взялся за это. Ещё раз, спасибо за помощь! Сергей
  PS расчётные программы начал писать ещё с 1975 (Алгол-60, проектная баллистика выведения орбитального самолёта в дипломе), но как вижу, отстал безвозвратно.

 
haavДата: Суббота, 24.08.2019, 10:19 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Цитата serg266 ()
Остался на уровне DOS (QB-7.1) и использую похожее, не владея возможностями API и Window9. Пишу чисто расчётные программы? Главное получить результат, оболочка, как получится. Только благодаря FB (с поддержкой QB), с русским Help, и вашей  Window9, взялся за это. Ещё раз, спасибо за помощь! Сергей  PS расчётные программы начал писать ещё с 1975 (Алгол-60, проектная баллистика выведения орбитального самолёта в дипломе), но как вижу, отстал безвозвратно.


Основная база знаний есть , с остальным по справкам можно разобраться при желании. Если что не стесняйся , спрашивай. Поможем , чем сможем.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
  • Страница 1 из 1
  • 1
Поиск: