Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Jun 26, 2019 1:17 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 162 posts ]  Go to page Previous 1 2 3 4 511 Next
Author Message
PostPosted: Tue Aug 24, 2010 12:10 pm 
SVN r. 1582 - поддержка сохранения размеров и корректировки положения для программ KIV и Rtfread.


Top
   
PostPosted: Tue Aug 24, 2010 12:28 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Надобно будет обновить страницу :
http://wiki.kolibrios.org/wiki/OpenDialog/ru
потому что там подключение диалога еще через макрос opendial.mac .
Ну и также программы planet_v и t_editor .


Top
   
PostPosted: Tue Aug 24, 2010 1:09 pm 
SVN r. 1583 - прикрутил использование вызова OpenDialog через библиотеку proc_lib.obj, к программе MidAmp. Поддержка сохранения размеров и корректировки положения OpenDialog.


Top
   
PostPosted: Tue Aug 24, 2010 1:13 pm 
IgorA wrote:
Надобно будет обновить страницу :
http://wiki.kolibrios.org/wiki/OpenDialog/ru
потому что там подключение диалога еще через макрос opendial.mac .
Ну и также программы planet_v и t_editor .

Как только дойдут руки. Программы я поправлю, а вот Википедию редактировать пока времени нет.


Top
   
PostPosted: Tue Aug 24, 2010 1:24 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
я только что подправил planet_v, так что может и остальное сделаю


Top
   
PostPosted: Tue Aug 24, 2010 1:36 pm 
Вот и замечательно, а то мне еще zSea и ctrldemo править. И с кривоватым меню MidAmp плюхаться.
Ты пожалуйста здесь отпишись или в темах программ своих, чтобы знать общий фронт работ и не терять времени.


Top
   
PostPosted: Tue Aug 24, 2010 2:10 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Отредактировал пример подключения OpenDialog в википедии


Top
   
PostPosted: Tue Aug 24, 2010 4:06 pm 
SVN r. 1585 - использование вызова OpenDialog через библиотеку Proc_Lib.obj, в программе CtrlDemo (демонстрация некоторых элементов управления библиотеки Box_Lib.obj). Поддержка сохранения размеров и корректировки положения OpenDialog.


Top
   
PostPosted: Tue Aug 24, 2010 10:39 pm 
SVN r. 1588 - нижнее меню в MidAmp теперь также использует OpenDialog. Можно добавлять одиночные файлы и содержимое папок (исключая вложенные папки с файлами). Также удален код работы с устаревшим Sysxtree.


Top
   
PostPosted: Wed Aug 25, 2010 12:16 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Исправил программу t_editor.

Работая над t_editor-ом появилась идея по усовершенствованию OpenDialog-а. Если при запуске диалога мы задаем пустую строку в dir_default_path:
Code:
align 4
OpenDialog_data:
.........
.dir_default_path   dd openfile_path ;+20
.........

То диалог сам по умолчанию открывает диск RD/1. Но при этом в текстовом поле не прописывается RD/1, оно остается пустое. Если мы выберем какой-либо файл с диска RD/1, то диалог благополучно закрывается, но путь к файлу остается неполный ... Далее тут возможны глюки, если пользовательская программа по умолчанию работает с диском RD/1, то такой путь ей подойдет. При повторной попытке открытия диалога он выдает ошибку, т. к. не указан полный путь к файлу и он не знает где его искать.

Предложение такое, если программист задал пустой путь в dir_default_path, то при запуске диалога в текстовое поле должен вписываться открытый диалогом путь RD/1 .


Top
   
PostPosted: Wed Aug 25, 2010 9:12 pm 
А зачем вообще трогать?
Code:
.dir_default_pach   dd communication_area_default_pach   ;+20

Этот путь оставлен как резервный, когда совсем нечего брать программе. То что программа подставляет /rd/1/ сама, так это вообще левое - на случай если она запущена не через макрос opendial.mac (который теперь в Proc_Lib.obj), а например файловым менеджером.
Для использования рабочего пути есть заранее предусмотренный параметр:
Code:
.opendir_pach      dd temp_dir_pach   ;+16

А вот если уже он пустой, то используется значение адреса, которое по смещению +20.
Во время работы в адрес по +16 копируется меняющийся путь к последней открытой директории, если операция по выбору файла прошла успешно. При старте это обычно пустая область, но если туда прописать путь к директории, то он откроет именно нужную директорию. Разумеется если она существует.

А если скопировать путь к файлу в область:
Code:
.openfile_pach          dd fname_buf ;+36

так можно даже с очисткой пути от имени файла не мучаться - код в opendial.mac сам обработает и поместит путь к директории в область, по адресу указанному в +20.
В последнем случае это должно быть сделано до вызова:
Code:
    call    [OpenDialog_Init]


Top
   
PostPosted: Wed Aug 25, 2010 10:40 pm 
SVN r. 1594 - исправление KIV
SVN r. 1595 - исправление Midamp
Теперь при запуске с параметром "путь к файлу" - OpenDialog открывает ту директорию, откуда открыт файл. Раньше в первый раз всегда открывалось /rd/1


Top
   
PostPosted: Thu Aug 26, 2010 12:22 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Mario wrote:
Для использования рабочего пути есть заранее предусмотренный параметр:
Код:
.opendir_pach dd temp_dir_pach ;+16
А вот если уже он пустой, то используется значение адреса, которое по смещению +20.

Я имел ввиду ситуацию когда и в смещении +20 и в +16 одновременно идут пустые строки.
Mario wrote:
То что программа подставляет /rd/1/ сама, так это вообще левое - на случай если она запущена не через макрос opendial.mac (который теперь в Proc_Lib.obj), а например файловым менеджером.

Приведу 2 ситуации:
1) пути в +16 и +20 пустые
2) путь в +16 пустой а в +20 путь указывает на rd/1
Действия диалога открытия файлов в этих случаях:
1) открывается путь rd/1, в текстовом поле пусто
2) открывается путь rd/1, в текстовом поле стоит rd/1

Если оставить все как есть, тогда программистам нужно объяснить эти ньюансы. Я по не знанию оставил и там и там пустой путь, и у меня возникала ситуация с самостоятельной подстановкой rd/1 и пустым полем ... хотя мне в программе нужно было именно поле с полным путем.
Если считаешь нужным оставляй все как есть, тогда в справочной системе прийдется больше писать.


Last edited by IgorA on Thu Aug 26, 2010 12:44 am, edited 1 time in total.

Top
   
PostPosted: Thu Aug 26, 2010 12:38 am 
Ну, поскольку в теме этой мы этот вопрос подняли, то я считаю достаточно. Ситуации разные бывают, все возможные учесть и сложно и бесполезно. У меня вот с приложениями такого не было, по этому я воспринимаю твою ситуацию как академическую и не требующую написания лишнего кода.

Так просто много к чему можно придраться - программист может например взять и в двух указателях один и тот-же адрес написать. Такую ситуацию я тоже не обязан учитывать. Ну мало ли что человеку вообще взбредет в голову. :)


Top
   
PostPosted: Tue Sep 07, 2010 11:53 pm 
SVN r. 1606 прикрутил использование OpenDialog (через библиотеку proc_lib.obj) - для программы RDsave.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 162 posts ]  Go to page Previous 1 2 3 4 511 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited