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

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

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

Widok (30-01-2009 12:11): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AutoPlay Media Studio часть 2 (часть 1)


Параллельная тема в Варезнике - поиск и обсуждение дополнений и ритейл версий


Где почитать:

Для начала читаем статьи: тут раз или тут раз и два и три
Скриптовый язык LUA (англ) На русском здесь,  еще тут и  тут
Видео-уроки (анг)  
Видео-уроки на YouTube (англ)
Где поживиться:

Видео-уроки (Flash) от производителя (англ)
Тоже официальное видео (англ)
Бесплатные шаблоны (маски) для окон ваших приложений (англ)
"Подарки к Рождеству" на оффсайте (англ)
Плагин LuaCOM (англ)
Примеры для начинающих (англ)
Неплохие примеры, библиотеки (англ)
Еще примеры, один из самых активных юзеров на оффоруме (англ)
Плагины и библиотеки (не все free) (англ)
Еще плагины (англ)
Собрание уроков (иногда с русскими объяснениями)
Где найти ответы на вопросы:

Виды путей, используемых в AMS от GOOSE
Включение\отключение фоновой музыки кнопкой
Вывод HTML отчета с использованием SQLite плагина от IndigoRose
Выделение и копирование в буфер текста\части текста от GOOSE
Для тех, у кого русский проект с "кракозяблами"
Запуск WinRAR'a для распаковки архивов от Reineke
Запуск файлов из Web объекта
Запускаем экзешник по информации из реестра от Lexua
Пример бегущей строки (более красивый способ) от tavria2
Из окна в полноэкранный режим и обратно
Изменяем иконку приложения от Lexua
Изменяем курсор в приложении от GOOSE
Изменяем скроллинг ListBox-у от GOOSE
Используем таймер
Отправка данных из форм по e-mail от GOOSE
Перенос строки во всплывающей подсказке от GOOSE
Альтернативный перенос строки для текста (подходит и для *.ini) от Zloy_Gelud
Показ\скрытие объектов по действиям мыши
Полноэкранный режим для приложения
Последовательный запуск нескольких файлов
Проблема с путями при создании приложения .EXE и ресурсами на CD от Reineke
Проигрвывание MP3 из ListBox-а подряд от UMode
Простой пример бегущей строки от GOOSE
Работаем с запароленными архивами от GOOSE
Работаем с объектом дерева от GOOSE
Ряд вопросов и ответов по созданию меню для DVD от tavria2
Реализация Play-листов для Винампа от BOObastis
Таблица дисков системы от Lexua
Утилита для защиты авторанов
Шапка исправлена. Актуально на 20.08.2008 © NightW0lf

Разработчиков autorun'ов и графических дизайнеров приглашаем посетить проект шаблонов для Autoplay Media Studio:
http://ams-templates.com

 
Список выявленных проблем в AMS 7.0

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 23:07 03-09-2007 | Исправлено: Maz, 12:31 25-09-2017
40rt

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

При щелчке по кнопке вылезает меню, состоящее из кнопок (Buttons - "btn_about_1" и "btn_about_1" ) - как сделать, чтоб при щелчке в свободной области страницы меню скрывалось?
В Page->On Mouse Button пишу:
 

Код:
 
if (e_Type == LEFT_BUTTON_DOWN) then    
 
    x = Button.IsVisible("btn_about_1");
    y = Button.IsVisible("btn_about_2");
 
    if (x == true) or (y == true) then -- если кнопки видны, то скрыть их...
           Button.SetVisible("btn_about_1", false);
           Button.SetVisible("btn_about_2", false);
    end
    
end
 

 
Но действие кнопки не успевает выполниться, поскольку выполняется по отпусканию, а к этому моменту кнопки меню уже невидимы. Если прописать e_Type == LEFT_BUTTON_UP то меню появляется на мгновение - и сразу становиться невидимым.
 
Хотел использовать ещё Page.GetFocus() после "if (x == true) or (y == true) then"  
 

Код:
result = Page.GetFocus();
        -- если фокус не на кнопках, то скрыть их...
        if (result ~= "btn_about_1") or (result ~= "btn_about_2") then  
            Button.SetVisible("btn_about_1", false);
            Button.SetVisible("btn_about_2", false);
        end

 
Но эта функция почему-то всегда возвращает только имя страницы а не...
Что я не так делаю?

Всего записей: 57 | Зарегистр. 05-07-2008 | Отправлено: 10:06 21-07-2008
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
40rt
Меню из кнопок - это красиво, но не практично. Такое меню не сможет перекрывать объекты "верхнего" уровня, таких как: Input, ListBox, ComboBox и т.д., также дополнительные хлопоты с подменю - оно тебе надо?  
Используй стандартное меню.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 12:57 21-07-2008
40rt

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

Цитата:
Меню из кнопок - это красиво, но не практично. Такое меню не сможет перекрывать объекты "верхнего" уровня, таких как: Input, ListBox, ComboBox и т.д., также дополнительные хлопоты с подменю - оно тебе надо?  
Используй стандартное меню.

Не, стандартное некрасиво С неперекрываемыми объектами я разобрался, разместив все на странице так, чтоб никому никто не мешал...
ЗЫ С меню разобрался - подложил под кнопки хотспот, с краями немного выступающими за меню, и по его On Leave все прячутся.

Всего записей: 57 | Зарегистр. 05-07-2008 | Отправлено: 13:14 21-07-2008
lorents



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет! не скажите есть ли в AMS параметр активность страницы проекта
 
имею ввиду, мне надо написать код типа
 
если страница активно то
...
если нет то
...
 
Добавлено:
и еще есть ли у кого русификатор к 7-ой версии?

Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 20:38 21-07-2008 | Исправлено: lorents, 20:38 21-07-2008
Zloy_Gelud



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lorents -- давай подробней, что значит страница активна/неактивна??

Всего записей: 3273 | Зарегистр. 30-05-2007 | Отправлено: 14:31 22-07-2008
AleksejTokarev



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте! Скажите пожалуйста, а как можно сделать выборку из базы данных в интернэте.  
 
К примеру у меня есть сайт, база данных MYSQL, как сделать так чтобы софтина подключалась к базе и делала нужную мне выборку из базы?
 
СПАСИБО ЗА РАНИЕ!

Всего записей: 171 | Зарегистр. 17-04-2007 | Отправлено: 00:03 23-07-2008 | Исправлено: AleksejTokarev, 00:18 23-07-2008
lorents



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zloy_Gelud
 
имею ввиду если идет действие на проекте то про происходит одно действие, а если на пример пользователь открыл папку или запустил другую программу и т.д. то происходит другое действие

Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 01:41 23-07-2008 | Исправлено: lorents, 01:42 23-07-2008
AleksejTokarev



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, как получить ПОСЛЕДНЕЕ занесённое в INI фаил ValueName.
 
такая фича не канает:
result = INIFile.GetValueNames("AutoPlay\\DatenBank\\links.ini", "Link");  
 
так как result получает табличное значение, а мне нужно только последнюю запись.

Всего записей: 171 | Зарегистр. 17-04-2007 | Отправлено: 12:17 23-07-2008
Zloy_Gelud



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

Код:
tValueNames = INIFile.GetValueNames("AutoPlay\\DatenBank\\links.ini", "Link");
local nError = Application.GetLastError();
if (nError ~= 0) then
    Dialog.Message("Error", _tblErrorMessages[nError], MB_OK, MB_ICONEXCLAMATION);
else
    if (Table.Count(tValueNames) > 0) then
        Dialog.Message("Notice", tValueNames[Table.Count(tValueNames)], MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
    end
end

 
Добавлено:
lorents
 
Возможно так..
 

Код:
-- если окно проекта неактивно
if (WinApi.GetActiveWindow() ~= Application.GetWndHandle()) then
    -- bla-bla-bla
-- если активно
else
    -- bla-bla-bla
end

 
Добавлено:
lorents -- крутить код соотв-но в таймере

Всего записей: 3273 | Зарегистр. 30-05-2007 | Отправлено: 16:50 23-07-2008
40rt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что это за глюк???
При вычитании 15815-15766 результат получается 45.999999999998 !
Только у меня так? Проверьте кто-нибудь, у меня версия 7.
ЗЫ Math.Round(num, 0) помогло, но что это за фигня?

Всего записей: 57 | Зарегистр. 05-07-2008 | Отправлено: 19:12 23-07-2008 | Исправлено: 40rt, 19:48 23-07-2008
tavria2



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

Цитата:
При вычитании 15815-15766 результат получается 45.999999999998 !  
 
У меня результат = 49, без всяких Math.Round.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 20:02 23-07-2008 | Исправлено: tavria2, 20:05 23-07-2008
40rt

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

Цитата:
У меня результат = 49, без всяких Math.Random.

 
tavria2
я немножко ошибся, там считать нужно 15815-15766-3, но не важно...
Вот как у меня в проге происходит расчет:

Код:
 
    x = "1.5815"; -- изначально данные в виде строк
    y = "1.5766";
    z = "3";
    
    x = String.ToNumber(x);  
    y = String.ToNumber(y);
    z = String.ToNumber(z);
    
    x = x*10000; -- дробь в целое переведем
    y = y*10000;
    
    test = x-y-z;
 
 

 
Вот в этом случае ошибка получается, проверил.

Всего записей: 57 | Зарегистр. 05-07-2008 | Отправлено: 20:22 23-07-2008
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
40rt
Таки да, есть глюк

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 22:00 23-07-2008
40rt

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

Цитата:
Таки да, есть глюк

Ну слава богу глюк не у меня...
Причем глюк возникает в String.ToNumber, если её результаты сразу обрабатывать Math.Round(num, 0), то всё нормально...
 
 
Добавлено:
У кого с математикой всё хорошо (не как у меня) - как мне расчитать количество недель и дней из числа? Всё что я придумал:
 
    

Код:
    function get_mm_dd_duration(duration)
        
        weeks = Math.Floor((duration/7)); -- кол-во недель
        if (duration >= 7) then
            days = Math.Floor((duration/7-weeks)*10); -- кол-во дней
        else
            days = duration;
        end
 
    end

 
как-то через жопу...
Может где есть база алгоритмов для подобных задач?

Всего записей: 57 | Зарегистр. 05-07-2008 | Отправлено: 22:21 23-07-2008
Zloy_Gelud



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

Цитата:
 как мне расчитать количество недель и дней из числа?

А число - ето что такое? Дни?
Судя по етой строчке

Цитата:
weeks = Math.Floor((duration/7)); -- кол-во недель

то да. Т.е. переменная duration - это и есть продолжительность в днях. Так зачем рассчитывать дни? Рассчитывай одни недели и все.
 
 
Добавлено:
И, 40rt, глюк возникает скорей при умножении на 10000.
Если так, то глюка нету:
 

Код:
x = "1.5815";
y = "1.5766";  
z = "3";      
x = String.ToNumber(x)*10000^2/10000;  
y = String.ToNumber(y)*10000^2/10000;  
z = String.ToNumber(z);  
test = x - y - z;    
Dialog.Message("Test", test, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);


Всего записей: 3273 | Зарегистр. 30-05-2007 | Отправлено: 01:32 24-07-2008
40rt

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

Цитата:
А число - ето что такое? Дни?  
Судя по етой строчке  
 
Цитата:weeks = Math.Floor((duration/7)); -- кол-во недель  
 
 
то да. Т.е. переменная duration - это и есть продолжительность в днях. Так зачем рассчитывать дни? Рассчитывай одни недели и все.

 
Не, имея на входе число 22, мне нужен результат вида - "продолжительность, дней - 22 (3 нед., 1 день)", то есть сколько в числе недель и в остатке дней.
 

Цитата:
И, 40rt, глюк возникает скорей при умножении на 10000.  
Если так, то глюка нету:

Почему глюка нету, не понял... что такого в умножении на 10000?
Множитель 10000 у меня получается в зависимости от кол-ва знаков после запятой (помнишь я спрашивал, как узнать сколько знаков после запятой во введенном в Input числе?):
 

Код:
    sNumber = Input.GetText("price_open");        
    nPointPos = String.ReverseFind(sNumber, ".", false);
      
    div = 1; -- это если в инпут целое
    
    if (nPointPos ~= -1) then  
           nChars = String.Length(String.Mid(sNumber, nPointPos + 1, -1));  
        if (nChars >= 4) then
            div = 10000;
        elseif (nChars == 2) then
            div = 100;
        end
    end
 

 
И если прям там написать, например  
 

Код:
...
        if (nChars >= 4) then
            div = 10000^2/10000;
        end
...

 
то та-же ошибка получается...

Всего записей: 57 | Зарегистр. 05-07-2008 | Отправлено: 07:50 24-07-2008 | Исправлено: 40rt, 08:54 24-07-2008
Zloy_Gelud



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

Цитата:
как мне расчитать количество недель и дней из числа?

Можно так попробывать..

Код:
function DDInWeek(nDays)
    nWeeks = 0; nRemDays = 0;
    if (nDays > 7) then
        nWeeks = Math.Floor(nDays / 7);
        nRemDays = nDays - nWeeks * 7;
    end
    -- Days - всего дней, Weeks - кол-во недель, RemDays - остаток дней
    return {Days = nDays, Weeks = nWeeks, RemDays = nRemDays};
end
 
nNumber = 3027;
tDuration = DDInWeek(nNumber);
if (tDuration) then
    -- если есть недели
    if (tDuration.Weeks ~= 0) then
        sMes = "Дней - "..tDuration.Days.." ("..tDuration.Weeks.." нед., "..tDuration.RemDays.." дн.)";
    else
        sMes = "Дней - "..tDuration.Days;
    end
    Dialog.Message("Продолжительность", sMes, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

 
 
Добавлено:
40rt -- и по поводу глюков..Если я правильно понял   , что тебе надобно, то во приблизительно..

Код:
--[[
    Функция возвращает целое число из нецелого
]]

function InInt(sNumb)
    -- позиция запятой
    local nPointPos = String.ReverseFind(sNumb, ".", false);
    -- если число нецелое
    if (nPointPos ~= -1) then  
        -- кол-во знаков после запятой
        nChars = String.Length(String.Mid(sNumb, nPointPos + 1, -1));
        -- множитель в зависимости от кол-во знаков после запятой
        nMultiplier = String.ToNumber("1"..String.Repeat("0", nChars));
    else    -- если число целое
        -- множитель равен 1
        nMultiplier = 1;
    end
    -- возвращаем целое число
    return String.ToNumber(sNumb) * nMultiplier^2 / nMultiplier;
end
 
x = InInt(Input.GetText("Input1"));
y = InInt(Input.GetText("Input2"));
z = InInt(Input.GetText("Input3"));
test = x - y - z;
Dialog.Message("Test", test, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

 

Цитата:
..то та-же ошибка получается...

Использовать такую запись 10000^2/10000 необходимо непосредственно во время умножения, а не присваивать значение множителю.
 

Всего записей: 3273 | Зарегистр. 30-05-2007 | Отправлено: 14:44 24-07-2008
Zloy_Gelud



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят, не поможете с примерчиком кода типа "бегущей строки"   , а именно чтоб, если строка длиннее необходимого размера  Label'a, то строка усекается до нужного размера (это я сделал), а затем по таймеру отсекается одна буква сначала строки (строка уже, к-ая в Label'e) и добавляется соот-но одна буква в конец строки, тем самым получаетсо эффект "бегущей строки". И хотелось бы, чтоп она туда-сюда    двигалась. До етого приводились примеры  "бегущей строки", но немного не то.. А у меня чтот не получаетсо докумекать..

Всего записей: 3273 | Зарегистр. 30-05-2007 | Отправлено: 18:30 26-07-2008
Robby

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zloy_Gelud
При использовании базы в Soft v7 (Amora Skin).apz  обнаружились некоторые проблемы связанные с валидностью xml файла, например, наличие такой конструкции: <любой текст> в исходном описании программы,  сделает базу невалидной а проект полностью нерабочим.  
 
после:

Код:
Paragraph.SetText("Prg_Desc", XML.GetValue("database/item:"..nItem.."/desc"));
 
стоит добавить:

Код:
Paragraph.SetScrollPos("Prg_Desc", 0, true);
 
что вернет scroll bar в исходное положение, иначе его позиция будет такой же как в последнем прочитанном описании.

Всего записей: 883 | Зарегистр. 28-09-2003 | Отправлено: 19:15 27-07-2008 | Исправлено: Robby, 19:35 27-07-2008
Zloy_Gelud



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Robby - все правильно . Потому что такая конструкция <Text> считается одним из элементов XML, и скорей всего из-за етого не правильно парсится БД. Как вариант, замени символы < и > на любые другие.
 
 
Добавлено:

Цитата:
после: .. стоит добавить:..

Верно). Просто счас у меня описания маленькие, поетому и без скроллинга получалось, вот и не заметил. Поправим. THX.
 
Добавлено:
Можно немного поправить функцию ProgramsFromRazdel(), чтобы показывало ошибку в случае неправильной конструкции XML-БД и последующий выход из проекта.
 

Код:
function ProgramsFromRazdel(sRazdel)
    tResult = {};
    local nItems = XML.Count("database", "item");
    local nError = Application.GetLastError();
    if (nError ~= 0) then
        Dialog.Message("Error #"..nError, _tblErrorMessages[nError], MB_OK, MB_ICONEXCLAMATION);
        Application.Exit(0);

    else    
        for nItem=1, nItems do
            if (XML.GetValue("database/item:"..nItem.."/razdel") == sRazdel) then
                tResult[Table.Count(tResult)+1] = {Item=nItem, Name=XML.GetValue("database/item:"..nItem.."/name")};
            end
        end
    end
    return tResult;
end

Всего записей: 3273 | Зарегистр. 30-05-2007 | Отправлено: 19:38 27-07-2008
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Программы » Indigo Rose AutoPlay Media Studio (часть 2)
Widok (30-01-2009 12:11): Лимит страниц. Продолжаем здесь.


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru