View previous topic :: View next topic |
Author |
Message |
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Wed Nov 17, 2010 21:13 Post subject: |
|
|
Flasher wrote: | MVV wrote: | А чтобы записать пустое значение, а не удалять ключ, можно указывать "" как значение этого параметра. | А разве под первым предложением "без текста .. использовать" не это подразумевалось? | Под чьим и каким первым предложением? Моя мысль была о том, что для очистки значения параметра вполне можно передавать пустую строку как новое значение. А для удаления - вообще не указывать новое значение.
Кстати, виндовая функция для записи значений в INI так и работает - передаешь ей пустой указатель - удаляет параметр из файла. А передаешь указатель на пустую строку - просто очищает значение без удаления параметра.
И, тоже кстати, если этой функции передать пустой указатель на имя параметра в секции, она удаляет всю секцию - так что нового кода даже писать не придется, лишь позволить текущему коду обрабатывать отсутствие двух последних параметров функции, т.е. новый синтаксис должен быть таким:
Code: | IniWrite [/EV] <имя ini> <секция> [<ключ> [<текст>]] |
При этом, если какой-то из последних параметров не задан, в функцию WritePrivateProfileString передается пустой указатель (0, он же NULL, он же nil). И упомянуть в Readme, что при отсутствии двух последних параметров вся указанная секция будет уничтожена. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1287
|
(Separately) Posted: Wed Nov 17, 2010 22:16 Post subject: |
|
|
MVV
MVV wrote: | Моя мысль была о том, что для очистки значения параметра вполне можно передавать пустую строку как новое значение. А для удаления - вообще не указывать новое значение. |
Сходу так не получится. Дело в том, что сейчас команда, получающая от парсера параметры, не различает - был это пустой параметр или отсутствовал вообще. Конечно, это можно изменить, но не вижу смысла всё усложнять.
В любом случае, считаю более резонным иметь отдельную функцию для удаления - просто во избежание ошибок, в результате которых могут потеряться целые секции. А так мнемонически будет понятно. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2567
|
(Separately) Posted: Thu Nov 18, 2010 00:15 Post subject: |
|
|
MVV wrote: | Кстати, теперь каждый может написать плагин для Autorun и добавить нужные команды. |
[off]Можно ведь воспользоваться при вызове Autorun и уже написанной утилитой TCFS2 , если уже её автор добавит туда возможность удалять ключ к уже имеющейся возможности задавать/модифицировать ключи. Тем более что в TCFS2 это можно будет делать в зависимости от значений других ключей. [/off] |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 18, 2010 00:33 Post subject: |
|
|
[off] sa wrote: | Тем более что в TCFS2 это можно будет делать в зависимости от значений других ключей. | С важной поправкой - только от числовых. Пока, надеюсь.
[/off] |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Thu Nov 18, 2010 01:42 Post subject: |
|
|
Quote: | Дело в том, что сейчас команда, получающая от парсера параметры, не различает - был это пустой параметр или отсутствовал вообще. | Параметры просто как String передаются, да? Тогда да, разницу не почувствуешь. С другой стороны, можно ввести некую константную строку, которая будет обозначать отсутствие параметра - например, строку из единственного символа chr(26) (т.е. символа конца текстового файла). А ещё мысль - добавить флаги для команды (которые указываются перед параметрами). Например, /D для удаления параметра и /DS для удаления секции - а уже функция будет разбираться, передавать nil или указатели на строки.
[off]Я, конечно, всё понимаю, но если вы мне поясните, какое отношение имеет функция удаления ключей INI к переключению тотала в полноэкранный режим (не здесь, разумеется, а в теме про TCFS2), тогда можно будет вести разговор об уместности функции в TCFS2.[/off]
Кстати, тут есть миниатюрная утилита для работы с INI из командной строки - удалять секции целиком умеет. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 18, 2010 01:55 Post subject: |
|
|
[off]
MVV wrote: | но если вы мне поясните, какое отношение имеет функция удаления ключей INI к переключению тотала в полноэкранный режим | К переключению ТС в полноэкранный режим эта функция никакого отношения не имеет, как и ряд других
функций/команд ТСFS2. Так что и объяснять нечего.
В любом случае без обработки текстовых полей от этой функции для меня не будет ровным счётом никакого толку.
[off]
За сайт спасибо. Несколько полезных вещей обнаружил. |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1287
|
(Separately) Posted: Thu Nov 18, 2010 11:27 Post subject: |
|
|
MVV
Всё, конечно, можно сделать и так. Вопрос - зачем? Ну ладно, майкрософт использовала для записи и удаления единую функцию WritePrivateProfileString, зачем эту нелогичность дальше-то тянуть? Все же в моем понимании запись и удаление - это довольно разные вещи. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Sun Nov 21, 2010 15:42 Post subject: |
|
|
Спасибо автору за плагин. Недавно подключил функционал Autorun_HideMenu.dll. Очень понравился. Появилось несколько вопросов и просьб, если конечно утилита развивается...
1. Хотелось бы иметь возможность подключать параллельно главному меню ещё одно меню. Как известно меню имеет ограничение в отображении 2000 пользовательских команд. Но даже не достигая этого ограничения, есть достаточно много тем (направлений),которые просто не вмещаются в одну строчку главного меню... даже в две не вмещаются. (файл, вид, навигация, инструменты, архивы, плагины, утилиты, сеть, система, папки, справка... и.т.д)
Если была бы возможность часть главного меню перенести во вспомогательное, которое бы вызывалось в авторане, через HideMenu:
MainMenuTwoPath="%COMMANDER_PATH%\Language\Wcmd_Rus_2.mnu"
ShowMainMenuTwo=65600
2. По поводу отображения меню. Я так полагаю, что это всё делается для увеличения пространства ТС, Можно отображать меню в виде полосы в самом вверху между значком ТС и кнопками (свернуть...)
Можно ли это реализовать - не знаю (где-то я видел утилиту, которая прилеплялась к верху)
Или отображать строку доп. меню внизу - чуть выше (F3,F4,А5...)
Есть ещё ряд хотелок, но это в процессе, если конечно это будет кому-то интересно |
|
Back to top |
|
|
Serge Yolkin
Joined: 25 Jul 2009 Posts: 664
|
(Separately) Posted: Sun Nov 21, 2010 16:30 Post subject: |
|
|
У AvantBrowser меню в заголовке окна. Пользуюсь. Удобно. Только, для TC такую фичу лучше бы отдельным плагином/утилитой реализовать. Немного раздражают швейцарские ножички (совпадение родины автора TC и страны-производителя ножичков - случайно). |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Nov 21, 2010 16:42 Post subject: |
|
|
Andrey_A wrote: | Можно ли это реализовать - не знаю (где-то я видел утилиту, которая прилеплялась к верху) | Можно, и эта тема явно для TCFS2. Именно по этой причине она и начинала создаваться по моему запросу. И плагин HideMenu к этому отношения не имеет. Он создавался для режима FullScreen, т.е. полного убора каких-либо элементов окна ТС кроме файловых панелей.
По поводу дополнительных меню пусть MVV сам откомментирует, боюсь попастся под его горячую.. И опять же это должно обсуждаться в этой ветке. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Nov 21, 2010 17:17 Post subject: |
|
|
Два главных меню - никак. Контекстных может быть сколько угодно, но кто будет парсить их? В случае с "родным" меню тотала он читает файл меню и создает само меню, а я лишь "скрываю" его. Второе меню же придется обрабатывать целиком и полностью мне, а это чересчур много работы.
Quote: | Я так полагаю, что это всё делается для увеличения пространства ТС, Можно отображать меню в виде полосы в самом вверху между значком ТС и кнопками (свернуть...) | Куда проще в плане реализации скрыть меню и показывать при необходимости, по хоткею или по кнопке панели инструментов. Потому что главное меню там, где оно у тотала, поддерживается на уровне системы еще с Windows 95, а в любом другом месте - это уже не меню, а лишь его имитация, полностью реализованная программистом. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Nov 21, 2010 17:39 Post subject: |
|
|
MVV wrote: | главное меню там, где оно у тотала, поддерживается на уровне системы еще с Windows 95, а в любом другом месте - это уже не меню, а лишь его имитация, полностью реализованная программистом. | Вот именно этого комментария я и ожидал. |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Tue Nov 23, 2010 20:05 Post subject: |
|
|
Serge Yolkin wrote: | Только, для TC такую фичу лучше бы отдельным плагином/утилитой реализовать |
Не подскажите у кого попросить, кто бы взялся?
MVV wrote: | Два главных меню - никак. Контекстных может быть сколько угодно |
MVV Подскажи, пожалуйста, как ты реализуешь контекстные меню?
По поводу плагина Autorun. Поделитесь опытом, кто что запускает вместе с Totalом? Я понимаю, что ответ может быть один - кто что хочет, то и вносит, но всё же... |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Nov 23, 2010 20:22 Post subject: |
|
|
Andrey_A wrote: | Не подскажите у кого попросить, кто бы взялся? | У нас только один тут такой "швейцарский ножичек", имя ему TwinKey, только я заранее знаю, что автор за это браться не будет.
Andrey_A wrote: | Подскажи, пожалуйста, как ты реализуешь контекстные меню? | Так он не реализует их. Он пишет, что можно реализовать. А пока только одно. Из ReadMe > TrackMainMenu=65540. |
|
Back to top |
|
|
|
|
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 vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|