Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Indigo Rose AutoPlay Media Studio (часть 5)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AutoPlay Media Studio





  AutoPlay Media Studio - мощная программа для создания меню автозагрузки CD/DVD. Эта программа создаст все необходимые файлы для автозапуска и его графическую оболочку, и даже сама встроит в нее использованные в проекте нестандартные шрифты. Пользователю останется лишь записать готовый проект на свой CD/DVD.
  AutoPlay Media Studio не требует от пользователя никаких особых знаний и очень прост в освоении, имеет дружественный и интуитивно понятный интерфейс. Приложение, которое будет создано AutoPlay Media Studio в конце работы, представлено в виде объектной модели. Эта модель состоит из группы отдельных страниц. На этих страницах можно размещать объекты, которые могут представлять собой графику, музыку, текст, видео, Flash, HTML и пр. Любому элементу можно назначить определенное действие. Например, при наведении на рисунок курсора мыши, может возникать текст с комментариями, при нажатии на кнопку "Play" начнет проигрываться фильм и т.д. Программа предоставляет сотни различных действий, которые можно связать с объектами. В AutoPlay Media Studio присутствует большое количество уже готовых шаблонов.
  AutoPlay Media Studio имеет широкие возможности и богатый набор инструментов для разработки мультимедийных проектов. Использовать программу можно не только для создания файлов автозапуска, но и, например, для разработки интерактивного обучающего софта или мультимедийной презентации.

Язык интерфейса: Английский
Страница загрузки: AutoPlay Media Studio Commerical Trial 8.5


Скриптовый язык LUA:
на Lua.Org (Official) - на Lua.Ru

Ресурсы, посвященные AMS (содержат коллекции примеров, дополнений, уроков):
  • icynorth.com
  • imagine-programming.com
  • mindquake.com.br

    Инструменты:
  • ScriptOMatic Tool - создает скрипт обращения ко всем свойствам выбранного WMI-класса

    Ответы на наиболее часто задаваемые вопросы


    Раскраска AMS-кода для публикации на форуме от UModeL: версия 1 и версия 2.

  • Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 06:17 05-08-2012 | Исправлено: Komandor, 13:30 23-09-2023
    karpovukg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго.
    Чета совсем я запутался.
    Один из комбобоксов неадекватно себя ведет.
     
    По умолчанию он имеет такие пункты:

    Код:
    Item Text – Экранная, Item data – “-1”
    Item Text – Максимальная, Item data – “0”
    Item Text – Другая, Item data – пусто
    Список не редактируемый.
     

    В OnShow страницы для него есть обработчик:

    Код:
    -- получаем значение из ини файла
    s_fps_ini = INIFile.GetValue(ini_f, "ddraw", "maxfps");
    -- добавляем к нему кавычки с дувух сторон
    s_fps_ini = '"' .. s_fps_ini .. '"';
    if (s_fps_ini == "0") or (s_fps_ini == "-1") then
        -- если значение в ини файле соотв. одному из определенных
        -- находим  соответствующий пункт
        n_fps_index = ComboBox.FindItem("fps", 1, LB_BYDATA, s_fps_ini);
        -- выбираем этот пункт
        ComboBox.SetSelected("fps", n_fps_index);
    else
        -- иначе меняем тип списка на редактируемый
        ComboBox.SetProperties("fps", {ComboStyle=1});
        -- обрезаем кавычки
        s_fps_temp = String.TrimLeft(s_fps_ini, '"');
        s_fps_temp = String.TrimRight(s_fps_temp, '"');
        -- заносим нестандартное значение в список
        ComboBox.SetItemText("fps", 3, s_fps_temp);
        -- и выбираем его
        ComboBox.SetSelected("fps", 3);
    end

    В ini файле значения без кавычек: -1 и 0 соответственно. Кавычки я ввел потому, что в других комбобоксах если в ini файле значения положительные – соответствующие пункты выбираются нормально, а если равны 0 или отрицательные – то вообще не выбираются пункты. Я предположил, что такое поведение возможно из-за автоматического перевода строки в число. В остальных комбобоксах кавычки проблему решили.
     
    В самом объекте в OnSelect

    Код:
    if (e_Selection == 1) or (e_Selection == 2) then
        -- если выбирается один из стандартных пунктов
        -- делаем список нередактируемым
        ComboBox.SetProperties("fps", {ComboStyle=0});
        -- переименовываем последний пункт
        ComboBox.SetItemText("fps", fps_count, "Другая");
    elseif e_Selection == 3 then
        -- иначе делаем список редактируемым
        ComboBox.SetProperties("fps", {ComboStyle=1});
        -- переименовываение последнего пункта происходит в событии Клавиша
    end

    В OnKey

    Код:
    n_ComboStyle = ComboBox.GetProperties("bit_for_pix").ComboStyle;
    if n_ComboStyle == 1 then
        s_fps_text = ComboBox.GetText("fps");
        ComboBox.SetItemText("fps", 3, s_fps_text);
    end

    Проблема в том, что даже если параметр в ini файле имеет значения 0 или -1, при которых комбобокс должен быть не редактируемым, в момент открытия страницы он становится редактируемым. Делал отладку: значения переменной s_fps_ini правильные – "0", "-1".
     
    Уверен, что в коде ошибка, но не вижу ее и все тут.  
    Ткните мордой пожалуйста.
     
    PS Ссылка на проект.
    PPS Еще одна странность в поведении комбобокса: если схватить его мышкой, когда он редактируемый – за него можно перемещать окно приложения. Версия AP 8.0.2.0. Подозреваю, что это баг объекта, ваше мнение? И можно ли устранить этот баг?

    Всего записей: 81 | Зарегистр. 13-01-2016 | Отправлено: 10:38 18-05-2017 | Исправлено: karpovukg, 10:46 18-05-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Из ини считывается только string
    Перевод значений в строку: stringtext =tostring(value);
    Перевод строки в номер: number_format = String.ToNumber("84");
    Кавычки в AMS это не " а \"
     
    Ну и напоследок, дарю свою мега крутую функу для отладки:

    Код:
        function print(value)
            local stype = type(value);
            if stype == "table" then sOutput = "";
            for Name, Contents in pairs(value) do sOutput = sOutput .. Name .. ": " .. Contents .. "\r\n"; end
            else sOutput = tostring(value); end
            Dialog.Message("Print value...", "Type: "..stype.."\r\n-------------\r\n"..sOutput);
        end

     
    Использовать очень просто:  
    print(value);
    показывает значение переменной, ее тип
    Причем показывает и значение таблиц.
    Можно просто выводить свой текст:
    print("Hello");
     
    Добавлено:

    Код:
    function checkbox_to_inif (check_vol, ini_vol)
        if CheckBox.GetChecked(check_vol) then
            INIFile.SetValue(ini_f, "ddraw", ini_vol,  "true");
        else
            INIFile.SetValue(ini_f, "ddraw", ini_vol,  "false");
        end
    end

    Можно проще:

    Код:
    function checkbox_to_inif (check_vol, ini_vol)
    INIFile.SetValue(ini_f, "ddraw", ini_vol,  tostring(CheckBox.GetChecked(check_vol)));
    end

     
    Добавлено:
    Вот еще одна, крайне нужная функа:

    Код:
    function toboolean(value)
        if value == "true" then return true else return false; end
    end

    В общем, в вашем проекте  полно лишнего и неправильная работа с типами переменных...
    функа print, поможет осознаванию...

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 11:37 18-05-2017 | Исправлено: CryptoUsbtor, 12:00 18-05-2017
    karpovukg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CryptoUsbtor

    Цитата:
    Из ини считывается только string

    Знаю, но, тем не менее...

    Цитата:
    Перевод значений в строку: stringtext =tostring(value);

    Сенкс.

    Цитата:
    Кавычки в AMS это не " а \"

    '"' - тоже допустимо.
    За функции отдельный сенкс. Попытаюсь разобраться.

    Всего записей: 81 | Зарегистр. 13-01-2016 | Отправлено: 15:21 18-05-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    karpovukg
    Я сделал то, что тебе надо. Вообще мне кажется что функция ComboBox.Find какая-то глючная. Я добавил в глобальные функции ещё несколько полезных функций для комбобокса.
     
    https://yadi.sk/d/iUCsvcxe3JJYhC
     

    Цитата:
    Ну и напоследок, дарю свою мега крутую функу для отладки:  

    Ты это называешь мага крутой функцией? Вот мега крутая функция для отладки.
    Код
    Использовать так:

    Код:
    local t = {"asd", 78, true};
    M(t);

    Можно и так:

    Код:
    local t = {"asd", 78, true};
    M(t, 12, 45, "asd");

     

    Цитата:
    Вот еще одна, крайне нужная функа:  

    Полезность этой функции стремится к нулю. Лучше так.

    Код:
    function toboolean(v)
        return v ~= nil and (v >= 1 or v == "true" or v == "TRUE");
    end

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 20:32 18-05-2017 | Исправлено: KerberX, 20:35 18-05-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX куда ж мне до тебя... Для меня она мега крутая...
    Так как помогает в отладке, без нее уже не могу...

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 20:58 18-05-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Это не моя функция, я только обернул её в более удобный вызов.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 21:01 18-05-2017
    marineharrison

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CryptoUsbtor
    к примеру добавить кнопку. то есть открыть уже скомпилированный авторан в программе можно?

    Всего записей: 93 | Зарегистр. 10-08-2009 | Отправлено: 21:04 18-05-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    marineharrison, открыть в программе нельзя, так вы написали: он скомпилирован...
    Можно надергать кода из готового и вставить в новый, свой проект.
    То есть создать клона.
     
    Если это несложный AutoRun лаунчер, то не займет много времени...  

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 21:39 18-05-2017 | Исправлено: CryptoUsbtor, 22:41 18-05-2017
    karpovukg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX
    Ну чО, мастер, чО!
    Снимаю шляпу!
    Сенкс, рахмет, данке шёнь и плюс в репу.
     
    Я так понял  - комбобоксом не стоит злоупотреблять?
    Я изначально данное действие собирался реализовывать через радиобоксы и инпут (в остальных случаях только радиобоксы), выбрал комбобокс из соображений экономии места, видел же сколько там свистоперделок наворочено.
     
    А трабл с тасканием окна за редактируемый комбобокс как-то можно убрать?

    Всего записей: 81 | Зарегистр. 13-01-2016 | Отправлено: 16:39 19-05-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ну чО, мастер, чО!  
    Снимаю шляпу!  
    Сенкс, рахмет, данке шёнь и плюс в репу.  

    Ну ты это, притормози немного.
     

    Цитата:
    Я так понял  - комбобоксом не стоит злоупотреблять?  
    Я изначально данное действие собирался реализовывать через радиобоксы и инпут (в остальных случаях только радиобоксы), выбрал комбобокс из соображений экономии места, видел же сколько там свистоперделок наворочено.  

    Всё было бы нормально если бы не идиотская идея IndigoRose что функции объектов типа ComboBox.SetSelected и подобные вызывают соответствующее событие этого объекта (и можно получить бесконечную рекурсию если не знать об этом). Но вообще да, комбобокс не самый удачный контрол для такого комбинированного типа настроек.
     

    Цитата:
    А трабл с тасканием окна за редактируемый комбобокс как-то можно убрать?

    У меня на AMS 8.5 такого нет. Обновись.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 16:52 19-05-2017
    ra700

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Поиск результатов не дал, поэтому спрошу здесь: есть ли возможность отображать кракозябры в коде как обычно? Имею ввиду код вывода Dialog.Message, где сообщения набраны в кириллице. Когда пишу код - все нормально, как сохраню проект и открою код - кракозябры.

    Всего записей: 76 | Зарегистр. 08-05-2007 | Отправлено: 21:13 19-05-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ra700 В русифицированной версии AMS, таких проблем нет.

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 21:48 19-05-2017
    karpovukg



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX

    Цитата:
    Ну ты это, притормози немного.

    Был не прав. Вспылил. Но теперь считаю свое высказывание безобразной ошибкой, прошу дать возможность загладить, искупить. Всё.

    Всего записей: 81 | Зарегистр. 13-01-2016 | Отправлено: 23:20 19-05-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX,  
    Как можно реализовать удаление из таблицы множества строк, зная их индекс?

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 12:34 22-05-2017 | Исправлено: CryptoUsbtor, 08:34 24-05-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CryptoUsbtor

    Цитата:
    Как можно реализовать удаление из таблицы множества строк, зная их индекс?

    Удаляй с конца. Тогда переиндексация не приведёт к смещению индексов нужных элементов. Собери все индексы для удаления, отсортируй их по убыванию и удаляй. Примерно так:

    Код:
    local tData = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    local tIndexes = {4, 9, 2, 6};
     
    table.sort(tIndexes,
    (
        function (v1, v2)
            return v1 > v2;
        end
    ));
    for x, y in ipairs(tIndexes) do
        table.remove(tData, y);
    end

     
    Добавлено:
    ra700
    AMS работает только с ANSI текстом и в русской версии Windows использует кодовую страницу Windows-1251. Вот только копирование текста из редактора AMS в буфер обмена в другой редактор происходит с ошибками в кодировке. Функции Import/Export в редакторе сохраняют текст как надо не ломая кодировку. В редакторе кода найди настройки шрифтов (Advanced -> Editor Settings) и поменяй набор шрифтов на кириллический. Если загружаешь текст или код из файла то убедись что он в кодировке Windows-1251.
     
    Если бы AMS мог поддерживать хоть какую-нибудь кодировку юникода всех этих проблем не было бы.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 14:51 22-05-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX Получилось!!! Огромное мерси.

    Цитата:
    Удаляй с конца

    даже и не пришло в голову...

    Код:
    table.sort(tIndexes,  
    (  
        function (v1, v2)  
            return v1 > v2;  
        end  
    ));

    такого нигде не видел...
    Круто!!!

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 21:43 22-05-2017
    ctaty3



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, а возможно ли преобразовать строку в переменную? Или как в плагине Socket разбивать получаемые данные с разных клиентов по разным массивам, или текстовым файлам?

    Всего записей: 75 | Зарегистр. 17-04-2016 | Отправлено: 11:47 07-06-2017 | Исправлено: ctaty3, 12:09 07-06-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ctaty3

    Цитата:
    Ребят, а возможно ли преобразовать строку в переменную?

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

    Код:
    local s1 = "qwerty"; -- Создание строки из строкового литерала.
    local s2 = string.rep("a", 7); -- Создание строки через вызов функции. Переменная s2 будет содержать строку "aaaaaaa" (7 раз "a").

     

    Цитата:
    Или как в плагине Socket разбивать получаемые данные с разных клиентов по разным массивам, или текстовым файлам?

    Тут не подскажу, никогда не работал с этим плагином.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 19:13 07-06-2017
    ctaty3



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Например, у нас есть строка "true", можно ли как-то сделать так, чтобы она стала булевым значением не в виде строки, или строку "sName=Вася" в sName="Вася", не используя обрезание строки?

    Всего записей: 75 | Зарегистр. 17-04-2016 | Отправлено: 09:39 08-06-2017 | Исправлено: ctaty3, 10:00 08-06-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ctaty3

    Код:
    -- #1. Возвращает true если v не 0 или это строка "true" или "TRUE"
    function toboolean(v)
        return v and (v == true or v != 0 or v == "true" or v == "TRUE");
    end
     
    -- #2. Создаёт переменную sName со значением "Вася" (строка) в глобальном окружении.
    assert(loadstring("sName = \"Вася\""))();

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 13:52 08-06-2017
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

    Компьютерный форум Ru.Board » Компьютеры » Программы » Indigo Rose AutoPlay Media Studio (часть 5)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru