OpenDialog - диалог выбора файлов и директории

Work with drives, directories, files
  • SVN r. 1608 прикрутил использование OpenDialog (через библиотеку proc_lib.obj) - для программы Screenshooter.
  • SVN r. 1611 прикрутил использование OpenDialog (через библиотеку proc_lib.obj) - для программы Desktop.
  • Mario
    Хорошая тенденция :) OpenDialog воистину глобальное приложение.
    ушёл...
  • Mario
    Планируется ли подключение OpenDialog к компилятору fasm ?
  • В теме Box_Lib я приводил список программ гипотетически могущих быть дополненных вызовом OpenDialog. Перечеркнутые это те, которые уже сделаны.
    Если есть желание помочь процессу, то я только за.

    Есть только проблема с программами завязанными на 64 функцию, как например Animage - их придется предварительно переделывать на функцию 68. Впрочем таки программ не так много.

    В ближайшее время я возьмусь за программу Icon - в ней кроме прикручивания OpenDialog требуется еще пофиксить минимум один баг.
  • Mario wrote:Если есть желание помочь процессу, то я только за.
    Вот файлик fasm с использованием OpenDialog, почти все сделано. Но есть 2 небольших проблемки:
    1) при открытии окна диалога не отображаются файлы с расширением по умолчанию, в коде вроди все нормально

    Code: Select all

    Filter:
    dd Filter.end - Filter.1
    .1:
    db 'ASM',0
    .end:
    db 0
    после выбора пункта *.* - show all показываются все файлы, ... не пойму наверное я гдето что-то упустил из виду
    2) При повторном открытии окна диалога возможно возникновение двойного слеша в пути к файлу. Связано это с тем что в 3-м editbox-е в конце нужен слеш, а при запуске окна диалога он не нужен. Просто уже не хочу это поправлять, нужно писать дополнительный код на функцию запуска диалога (в коде это функция fun_opn_dlg)
    на СВН не залил, т.к. не готово еще ...
    Attachments
    fasm.7z (4.86 KiB)
    почти готовая версия
    Downloaded 251 times
  • 1) Тут есть одна тонкость, которую я забыл разъяснить.
    Если для фильтра идет пустой буфер нужна конструкция вида:

    Code: Select all

    Filter:
    dd	Filter.end - Filter.1
    .1:
    .end:
    db	0
    
    Т.е. размер будет 0.

    Если буфер не пустой, то:

    Code: Select all

    Filter:
    dd	Filter.end - Filter
    .1:
    db 'ASM',0
    .end:
    db	0
    
    2) Ну, тут уж смотри сам. OpenDialog использует универсальный код, который не подставляет слеш, да и функция 70 конечный слеш тоже не использует. Функция диалога это только возврат пути выбранного пользователем, все дальнейшие действия с ним осуществляет приложение.
  • SVN r. 1617 прикрутил использование OpenDialog (через библиотеку proc_lib.obj) - для программы Fasm.
  • Спасибо! А то я мозг сломал, прежде чем понял, как скомпилить что-то отличное от example.asm.
  • Вообще-то в Тинипад можно открыть файл из любого файлового менеджера. А уж в самом Тинпаде есть опция компиляции (в том числе и с запуском) в верхнем меню Запуск.
  • SVN r. 1621 прикрутил использование OpenDialog (через библиотеку proc_lib.obj) - для программы Kolibri Graphics Benchmark (MGB).
  • SVN r. 1622 прикрутил использование OpenDialog (через библиотеку proc_lib.obj) - для программы HDD информер.
  • SVN r. 1624 прикрутил использование OpenDialog (через библиотеку proc_lib.obj) - для программы TinyPad.
  • SVN r. 1632 прикрутил использование OpenDialog (через библиотеку proc_lib.obj) - для программы Animage.
  • Who is online

    Users browsing this forum: No registered users and 1 guest