LINUX.ORG.RU

Диалоговое окно выбора файла из множества каталогов.

 , , , ,


0

1

Делаю данное меню для своего проекта, требуется загружать игровые ресурсы как из /usr/share/appname так и из ~/.appname

http://star-engineers.blogspot.ru/2013/10/blog-post_7.html

Не найдя готового решения я сделал своё.

FileName = FileDialogForm.AskFileName ("Заголовок окна", "единственный путь", " надпись кнопки OK", "Надпись кнопки Cancel", "Единственная маска файлов", Единственная картинка для значков файла , Массив масок , Массив значков для масок , показывать ли скрытые файлы , массив путей)

http://gambas.pro/forum/download/file.php?id=114

Ответ на: комментарий от rezedent12

Кстати у тебя тот же косяк, на который я тебе уже указывал: AskFileName может вернуть неинициализированную переменную.

ziemin ★★
()
Ответ на: комментарий от ziemin

Инициализировать надо объекты и массивы, а обычные переменные инициализируются при объявлении. Хотя конечно есть присвоить значение Null то можно получить такую ошибку. А так функция просто возвращает пустую строку.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

А так функция просто возвращает пустую строку.

А в руководстве по gambas пишут иначе:

String variables default to a NULL value when declared.

Ну и кто прав? Или поведение изменилось?

ziemin ★★
()
Ответ на: комментарий от ziemin
  Dim s As String
  Print Len(s)
  Print s
  If s = Null Then
    Print "is Null"
  Endif
  Print "ololo" & s & "ololo"

Выводит

0

is Null
ololoololo

Видимо все функции использующее строки проверяют не передан ли Null

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от ziemin
  Dim s As String
  If s = "" Then Print "Zero!!"
  Print Len(s)
  Print s
  If s = Null Then
    Print "is Null"
  Endif
  Print "ololo" & s & "ololo"

Выдаёт

Zero!!
0

is Null
ololoololo

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от ziemin

Видимо так сделали для совместимости со старыми програмками на бэйсике. Ведь даже Asc() в Gambas возвращает коды не UTF, а DOS кодировки.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Ты же понимаешь, что это исключение, которое подтверждает правило. Создатели этого твоего gambas'a облепили его автоконверторами типов. В других языках так просто не прокатит.

ziemin ★★
()
Ответ на: комментарий от ziemin

Таки да. Надеюсь скоро в Gambas добавят мата-оператор Accelerator который позволит отбрасывать автоконвертирование и ускорять.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от ziemin

Окай, То есть объявлять теперь переменную буду не as String, а as New String.

rezedent12 ☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.