| View previous topic :: View next topic |
| Author |
Message |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Fri Jul 23, 2010 6:40 am Post subject: |
|
|
Посмотрел я на вот это
"bSensitive=WshShell.RegRead("HKCU\\Software\\Akelsoft\\AkelPad\\Plugs\\Scripts\\SearchReplace\\Sensitive");"
и подумал, что напрашивается централизованный интерфейс для работы с опциями через средства Акеля.
Например:
opt = AkelGetOption("Options.CaretWidth")
opt = AkelGetPluginOption("Toolbar", "Options.BigIcons");
ну и SetOption так же. Для простоты можно оперировать только строками. А все инишки плагов засунуть в общий ини Акеля. В этом случае уйдёт эта разношерстная куча инишек и не надо будет лазить в реестр за опциями, которых там нет. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2507 Location: Киев, Русь
|
Posted: Fri Jul 23, 2010 7:39 am Post subject: |
|
|
Fr0sT, идея отличная, поддерживаю.
была уже здесь + получение информации о текущем файле здесь/
Только ini'шники не мешают; эта опция:
| Quote: | | opt = AkelGetOption("Toolbar", "Options.BigIcons"); | указывает, что брать надо из соответствующего ini. Когда первого параметра нет, то берём из ini/реестра проги.
Думаю, что скорость немного падает, если ini-файл большой... Хотя с другой стороны, если дёргать ini, то тоже производительность садится.
Если и делать "всё в одном", то в разных секциях, соответствующих названию плагина. А функции GetOption/SetOption чтобы не лазили по файлам и реестру, а брали значения из памяти. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Fri Jul 23, 2010 9:10 am Post subject: |
|
|
Fr0sT
А он существует  | Code: | AkelPad.SendMessage(AkelPad.GetMainHwnd(), 1355,...)
AkelPad.SendMessage(AkelPad.GetMainHwnd(), 1356,...)
AkelPad.SendMessage(AkelPad.GetMainHwnd(), 1357,...)
AkelPad.SendMessage(AkelPad.GetMainHwnd(), 1358,...)
AkelPad.SendMessage(AkelPad.GetMainHwnd(), 1359,...)
AkelPad.SendMessage(AkelPad.GetMainHwnd(), 1360,...)
AkelPad.SendMessage(AkelPad.GetMainHwnd(), 1365,...) | Подробнее смотрите AkelDll.h |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Fri Jul 23, 2010 9:53 am Post subject: |
|
|
FeyFre
хм, да, действительно есть. Однако, признаться, больно уж мудрёно они сделаны. Открыть ини, получить секцию, получить значение, закрыть ини...
VladSh
Насчет замечаний не понял. По сути и реестр, и инишки устроены одинаково: есть секции, в них значения (не берем в расчет древовидность реестра). Вот функции и должны делать следующее:
1) Определять, где хранятся опции
2) Читать из ини или реестра по указанному пути
(либо, если они все уже хранятся в памяти, просто возвращать значение).
Плюс функции будет в том, что будет обеспечен простой доступ из скриптов (а ведь насколько я понимаю, структуры в скриптах не используешь?)
upd идеи: чисто две функции такого вида:
GetOption("<Module>::<Section>.<Option>")
где Module = AkelPad или название плагина. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2507 Location: Киев, Русь
|
Posted: Fri Jul 23, 2010 10:09 am Post subject: |
|
|
| Fr0sT wrote: | | Плюс функции будет в том, что будет обеспечен простой доступ из скриптов (а ведь насколько я понимаю, структуры в скриптах не используешь?) | Структуры - для получения инфы о текущем файле, без неё никуда...
Использую - в ShowMenuEx.js.
В остальном всё 100%! Я именно это и хотел сказать, но у тебя, видимо, получилось это лучше)) |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Fri Jul 23, 2010 10:35 am Post subject: |
|
|
| Quote: | FeyFre
хм, да, действительно есть. Однако, признаться, больно уж мудрёно они сделаны. Открыть ини, получить секцию, получить значение, закрыть ини... | Не мудрено, а в лоб по стандартному алгоритму: открыть секцию, прочитать/записать, закрыть. В принципе всё по такому же принципу работает: открыть файл, прочитать, закрыть файл. Открыть холодильник, взять еду, закрыть холодильник. Все без исключения(те которым нужно сохранять настройки) плагины так делают. | Quote: | | Вот функции и должны делать следующее: | Это и делают вышеуказанные сообщения. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2507 Location: Киев, Русь
|
Posted: Fri Jul 23, 2010 11:06 am Post subject: |
|
|
FeyFre
Если что-то непортящееся надо часто брать, то может лучше при первом заходе на кухню один раз открыть холодильник, взять, и положить на стол, а потом просто брать со стола /тем более мы всё равно смотрим что есть в холодильнике, а что нет/?
Когда надо что-то положить в холодильник, то да, - открываем и кладём.
А можно попросить кого-то (метод) положить на сохранение, а уж он сам определит куда: в холодильник (если оно должно храниться в холодильнике) или ещё куда... |
|
| 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
|