Страница 5 из 13

Добавлено: Чт авг 30, 2007 04:26
B4rr4cuda
Такс, настроение у меня что ни есть садомазохическое - сижу разбираюсь с em_ командами.
Вопрос: Чем отличаються команды хранимые в usercmd.ini от wincmd_rus.ini (локализация флинта)?
Только местоположением?
Может ли файл wincmd_rus.ini находиться не в каталоге с локализацией, и если может, то как его тогда искать?

Добавлено: Чт авг 30, 2007 07:16
B4rr4cuda
VadiMGP Нашёл подходящий модуль для работы с icl, обдумываю тему кеша.
Я считаю что надо реализовать 2 метода кеша:
1. Тупо перенаправить в icl ссылки.
2. Добавить в bar дополнительную запись с ссылкой на icl.
Т.е. именно кеш, без потери ссылок на файлы с иконками.

Первый метод я сделаю в любом случае, а второй нужен только в связке с Тсменю.
Что скажешь?

Добавлено: Чт авг 30, 2007 11:34
VadiMGP
Так, сначала, про дефолтную библиотеку.
B4rr4cuda писал(а):достаточно ввести имя файла с иконками,
Так я и не хочу вводить его руками! Что, такая проблема вместо "wcmicons.dll" взять имя из ini файла. В общем, смотри сам. Понятно, что фича их разряда "кофе в постель", так что я особо биться не стану.
B4rr4cuda писал(а):Чем отличаються команды хранимые в usercmd.ini от wincmd_rus.ini
А что такое wincmd_rus.ini? Специально скачал флинтовскую локализацию - нету там такого. :shock:
B4rr4cuda писал(а):Нашёл подходящий модуль для работы с icl,
Какой? Дельфийский? Поделись ссылкой, плиз. Если его можно использовать в С++, возможно я тоже им воспользуюсь.
B4rr4cuda писал(а):2. Добавить в bar дополнительную запись с ссылкой на icl.
Ты имеешь в виду добавить в .bar файл секцию [Cache] и пачку строк типа CacheIndexNN=XX? Мысль хорошая.

Добавлено: Чт авг 30, 2007 12:41
Bomm
Вопрос: Чем отличаються команды хранимые в usercmd.ini от wincmd_rus.ini (локализация флинта)?
Только местоположением?
Может ли файл wincmd_rus.ini находиться не в каталоге с локализацией, и если может, то как его тогда искать?
Я думаю, ничем не отличаются, кроме того, что из usercmd.ini выполняются для всех пользователей, а из wcmd_rus.ini (у меня так!) только для этого языка
Поэтому этот файл должен находиться в каталоге Language\, также как файлы Wcmd_rus.lng, Wcmd_rus.inc, Wcmd_rus.mnu и Wcmd_rus.сhm

Добавлено: Чт авг 30, 2007 13:29
B4rr4cuda
VadiMGP
Что, такая проблема вместо "wcmicons.dll" взять имя из ini файла
Да втом то и фишка, что берёться номер иконки в wcmicons.dll из wcmicons.inc. Кто заменяет wcmicons.dll, получает собственно, уже другие иконки. Заменил номера в wcmicons.inc - получаешь ожидаемые результаты и в баредиторе и в тоталовском настройщике.
А подвязка дефолтной библиотеки... Разве что кнопочку дополнительную. Кликнул - загрузилась дефолтная.
A что такое wincmd_rus.ini? Специально скачал флинтовскую локализацию - нету там такого.
А ты в диалоге настройки в команд броузере в разделе wincmd_rus.ini создай пункт ЕМ_.
В каталоге лангуадже создаёться этот файл.
Какой? Дельфийский? Поделись ссылкой, плиз. Если его можно использовать в С++, возможно я тоже им воспользуюсь.
Дельфийский вестимо. IconLib Чёткая штука - и иконки качественно держит (причём все размеры и форматы) и с иконлибами работает на уровне...
Ты имеешь в виду добавить в .bar файл секцию [Cache] и пачку строк типа CacheIndexNN=XX? Мысль хорошая.
Можно без секции, просто для каждой кнопки добавлять строчку типа
Cache1=бла-бла-бла
Я проверил, тотал её даже не замечает, так что урону никакого,
a польза огромная и визуально никакой разницы для пользователя.

Bomm
Я думаю, ничем не отличаются, кроме того, что из usercmd.ini выполняются для всех пользователей, а из wcmd_rus.ini (у меня так!) только для этого языка
Т.е. меня не касаеться как пользователь их использует - моё дело записать их в выбраный раздел? Это меня радует!
Поэтому этот файл должен находиться в каталоге Language\, также как файлы Wcmd_rus.lng, Wcmd_rus.inc, Wcmd_rus.mnu и Wcmd_rus.сhm
А это вообще отлично. Путь к локализованному инку такой же - так что никаких дополнительных опций в инишник прописывать не надо.
Спасибо за разъяснения.

Добавлено: Чт авг 30, 2007 14:23
VadiMGP
B4rr4cuda писал(а):Разве что кнопочку дополнительную. Кликнул - загрузилась дефолтная.
Ну, хоть так. На безрыбье...
B4rr4cuda писал(а):А ты в диалоге настройки в команд броузере в разделе wincmd_rus.ini создай пункт ЕМ_.
Гхм... Нету у меня раздела wincmd_rus.ini. Ну и пес с ним. Ты и так разобрался.
B4rr4cuda писал(а):Можно без секции, просто для каждой кнопки добавлять строчку
В принципе можно, но я, по идеологическим соображениям, все ж таки, советовал бы сделать это отдельной секцией. Разделить сферы влияния. Ты не вмешиваешься в то, что читает (и пишет!) ТС, а он ни сном ни духом не ведает про твою секцию.
Юзер ведь может .bar отредактировать и с помощью ТС . И даже Notepad-ом.

Кстати, надо решить, что делать со ссылкой в кэш при copy-paste. Игнорировать?

Добавлено: Чт авг 30, 2007 15:08
B4rr4cuda
В принципе можно, но я, по идеологическим соображениям, все ж таки, советовал бы сделать это отдельной секцией. Разделить сферы влияния. Ты не вмешиваешься в то, что читает (и пишет!) ТС, а он ни сном ни духом не ведает про твою секцию.
Да ты прав. Лучше писать в секцию "кеш".
Свою секцию тотал переписывает каждый раз. Я не обратил на это внимание когда проверял. А вот чужую секцию не трогает.

Кстати, надо решить, что делать со ссылкой в кэш при copy-paste. Игнорировать?
А зачем игнорировать, добавлю в буф 9-ю строку. Тотал обрабатывает первые 8, баредитор будет обрабатывать 9.
Обратная совместимость сохраняеться.
Вот гляди:

Код: Выделить всё

TOTALCMD#BAR#DATA
cm_SrcExecs

wcmicons.dll,12
Активная: только программы

0
-1
This is sample path for cache!\asd\asda\asdas\dasdas\

Добавлено: Чт авг 30, 2007 15:31
VadiMGP
B4rr4cuda писал(а):Обратная совместимость сохраняеться.
Тогда, все тип-топ.

Когда будем определяться с интерфейсом между нами? Предлагаю:
- все ICL называть по имени соответствующего .bar файла, писать его в то же место где лежит сам .bar файл.
- секцию назвать [AlternativeCache]
- для каждой кнопки (от 1 до buttoncount) писать строку CacheIndexNN=xx, где NN - номер кнопки, а xx - индекс иконки в ICL.
- если решишь давать юзеру возможность сохранять кэш в произвольном месте, то в секции [AlternativeCache] добавить строку CacheFile=.

Что-то забыл?

Добавлено: Чт авг 30, 2007 15:45
B4rr4cuda
Насчёт произвольного местоположения кеша - а зачем нагружать юзверя лишними подробностями? Пусть кеш лежит рядом с баром.
А так, всё принято.

Добавлено: Пт авг 31, 2007 01:15
VadiMGP
B4rr4cuda
Ты мог бы дать мне какой-нибудь ICL файл, созданный через BarEditor? Просто, чтобы убедиться, что нет никакой несовместимости у наших ICL-компонентов и иконки у меня нормально читаются.

Добавлено: Пт авг 31, 2007 17:29
B4rr4cuda
Я ещё только в середине пути. Как закончу кеширование выложу ицлку.

Добавлено: Пт авг 31, 2007 17:53
B4rr4cuda
Хотя, чего это я туплю? Вот ицлка созданая с помощью этого модуля...

Добавлено: Пт авг 31, 2007 19:29
kalikanzaros
B4rr4cuda

сегодня столкнулся с такой штукой, создал новый bar файл (shift+f5) отрыл его через tcmemu потом запустил bareditor удалил все кнопки, кроме одной, закрыл.
стал его копиривать и тут заметил, что размер первого (в котором были кнопки) равен размеру второго (почти пустого)
удивился открыл блокнотом, ужаснулся ;)
стал проверять другие bar файлы, ситуация аналогична, к примеру:
в одном из них кнопок у меня 23 а в bar файле обнаружились записи о 33 кнопках, 10 из которых были удалены и непоказывались, но записи о них удалены не были, это как "фича" классифицировать не получиться, скорее всего баг.

второе кнопка "разбросана" по bar файлу, к примеру:

Код: Выделить всё

button2=T:\Program Files\Adobe\Adobe Photoshop CS2\Photoshop.exe,0
cmd2=T:\Program Files\Adobe\Adobe Photoshop CS2\Photoshop.exe
path2=T:\Program Files\Adobe\Adobe Photoshop CS2\
menu2=Photoshop
button3=T:\Program Files\Adobe\Adobe Photoshop CS2\ImageReady.exe,0
cmd3=T:\Program Files\Adobe\Adobe Photoshop CS2\ImageReady.exe
path3=T:\Program Files\Adobe\Adobe Photoshop CS2\
menu3=ImageReady
button4=D:\Program Files\IrfanView\i_view32.exe,0
menu4=Irfan view 4.00
потом идут кнопки в кол-ве 33 штук, потом (в самом конце файла):

Код: Выделить всё

menu13=catalog 
param1=
iconic1=0
param2=%A
iconic2=0
param3=%A
iconic3=0
cmd4=D:\Program Files\IrfanView\i_view32.exe
param4=%A
path4=D:\Program Files\IrfanView\
iconic4=0
param5=%A
iconic5=0
param6=%A
я заметил, что что-то подобное проскальзовало в этой ветке, но все-таки очень хотелось чтобы кнопка "существовала" как одно целое, а не была "размазана" по всему bar файлу, несколько строк в начале, одна в середине и одна в конце

если это как-то можно исправить, был бы крайне признателен...

Добавлено: Пт авг 31, 2007 20:48
VadiMGP
B4rr4cuda
Сенкс. Вроде, нормально читается. Бум ждать конечного результата.

По поводу штуки, про которую писал kalikanzaros. Ты работаешь с .bar файлом как с ini файлом? Тогда, перед тем, как сохранять кнопки вызови сначала WritePrivateProfileSection с пустой строкой. Это вычистит всю секцию полностью.

Добавлено: Сб сен 01, 2007 01:45
B4rr4cuda
Секцию уже обнуляю. В новой версии ессесно.