Witcherfx
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Доброго всем дня, подскажите пожалуйста, если в проекте я использую в названиях кнопок и т.п. не стандартные системные шрифты, нужно ли перед запуском системы устанавливать их в систему пользователя? И, если не затруднит, примерный скрипт такой операции, если она нужна конечно. Добавлено: Ещё вопрос. Мне хотелось бы сделать одну или ряд функций которые отвечали бы, для начала, только за названия кнопок главного меню и подменю каждой кнопки, задача решена лишь отчасти приведённым ниже кодом, однако есть но... В папке с контентом только первая папка содержит части, остальные три нет. В результате код называет первую кнопку, вторую и... и всё... ну и конечно кнопки с названиями частей. Поскольку мозг уже кипит, трудно сообразить что нужно или не нужно писать. Красным выделил места, которые, на мой взгляд, в ответе за недоработку. Сразу хочу отметить, что если вдруг будет способ с XML - я не работал с ним вообще никогда и прибавив к этому то, что я только знакомлюсь с Lua... Код: -- Функция возвращает путь к папке с контентом-- function fGetContentPath() local sContentPath = _SourceFolder.."\\"..(INIFile.GetValue("AutoPlay\\setting.ini", "Main", "SourseFolder")); return sContentPath end -- Функция используется для поиска удовлетворяющих условие значений в функции ниже-- function fGetPartsName(tPartName) local tPrtName = Folder.Find(tPartName, "*", false, nil); local gPageObject = Page.EnumerateObjects(); if (gPageObject ~= nil) then for nPartIndex, sNameButton in gPageObject do if (String.Left(sNameButton, 4)=="Part" and (Page.GetObjectType(sNameButton)) == OBJECT_BUTTON) then for n, s in tPrtName do Button.SetText("Part"..n, String.SplitPath(tPrtName[n]).Filename); else... end end end end end -- Пока эта функция отвечает за названия кнопок основного меню используя названия папок и должна будет называть кнопки подменю используя названия папок внутри тех, которыми названы кнопки меню-- function fSetMenuButName() local gPageObject = Page.EnumerateObjects(); if (gPageObject ~= nil) then for nIndex, sNameButton in gPageObject do if (String.Left(sNameButton, 6)=="Button" and (Page.GetObjectType(sNameButton)) == OBJECT_BUTTON) then local tFoldName = Folder.Find(fGetContentPath(), "*", false, nil); for n, s in tFoldName do Button.SetText("Button"..n, String.SplitPath(tFoldName[n]).Filename); fGetPartsName(tFoldName[n]) end end end end end | Добавлено: Ой, я решил задачку... и вправду мозг уже кипит... Кому интересно загвоздка была очень простой... Код: function fGetPartsName(tPartName) local tPrtName = Folder.Find(tPartName, "*", false, nil); local gPageObject = Page.EnumerateObjects(); if (gPageObject and tPrtName) ~= nil) then for nPartIndex, sNameButton in gPageObject do if (String.Left(sNameButton, 4)=="Part" and (Page.GetObjectType(sNameButton)) == OBJECT_BUTTON) then for n, s in tPrtName do Button.SetText("Part"..n, String.SplitPath(tPrtName[n]).Filename); end end end end end | Теперь всё как надо, и меню с названиями и части подписываются! Буду рад, если поступят предложения по оптимизации. Отдельное спасибо tavria2, на примере Вашего кода очень хорошо работается. | Всего записей: 5 | Зарегистр. 01-07-2009 | Отправлено: 05:07 04-07-2009 | Исправлено: Witcherfx, 06:31 04-07-2009 |
|