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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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.6


Скриптовый язык 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, 12:11 30-03-2024
    ra700

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пожалуйста! Я сам такой же новичок ))). В свое время меня здесь тоже здорово поддержали. Причину того, почему не сработало быстрое открытие, понятия не имею. У меня срабатывало всегда. Может сборка программы "кривая"? Поделюсь своей, если хотите попробовать. Там кроме самой проги есть куча дополнений. Поэтому вся куча весит 273Mb.

    Всего записей: 76 | Зарегистр. 08-05-2007 | Отправлено: 19:55 16-02-2013 | Исправлено: ra700, 19:56 16-02-2013
    AKKUMIS



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте! Помогите мне пожалуйста. Я делаю электронный учебник. У меня в одной странице 5 кнопок.С ними я должна открыть 5 web-документов. Подскажите,как можно делать ,чтоб все эти документы открылись в одной же странице. с каким инстументов я должна пользоваться и как будет код? а то у меня все они открывается отдельно
     
    Добавлено:
    Алло где вы? Помогите мне

    Всего записей: 6 | Зарегистр. 17-02-2013 | Отправлено: 15:09 17-02-2013
    gfhctr

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Захотел приколхозить простенький интерфейс для монтажа контейнера TrueCrypt.
    В Autiplay 8.1.0 прописал:  
    PASSWORD = Dialog.PasswordInput("Открытие контейнера", "Ваш пароль:");
    result = File.Run("TrueCrypt.exe", "/q /v TCv.tc /lx /a /p PASSWORD /e /b", "", SW_SHOWNORMAL, true);
    не срабатывает...-Не проходит пароль, т.е. переменная PASSWORD в блок параметров проги TrueCrypt.exe передается с ошибкой. Пробовал указывать в кавычках 'PASSWORD' (как Multimedia Builder) - не помогает.
    Причем, если вместо переменной PASSWORD в блоке параметров прописываю сам пароль - подхватывается.
    Подскажите, где засада, плз...

    Всего записей: 23 | Зарегистр. 02-07-2005 | Отправлено: 22:33 17-02-2013
    Octanium



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Доброго времени, не подскажете как в Autoplay Media Studio создать интернет подключение автоматически? (с вводом логина и пароля)

    Всего записей: 50 | Зарегистр. 07-02-2011 | Отправлено: 22:43 17-02-2013
    tavria2



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

    Цитата:
    Причем, если вместо переменной PASSWORD в блоке параметров прописываю сам пароль - подхватывается.  

    В блоке параметров у тебя вместо переменной, указана строка PASSWORD...
     
    Найди различия:

    Код:
    PASSWORD = Dialog.PasswordInput("Открытие контейнера", "Ваш пароль:");
    result = File.Run("TrueCrypt.exe", "/q /v TCv.tc /lx /a /p PASSWORD /e /b", "", SW_SHOWNORMAL, true);


    Код:
    PASSWORD = Dialog.PasswordInput("Открытие контейнера", "Ваш пароль:");
    result = File.Run("TrueCrypt.exe", "/q /v TCv.tc /lx /a /p "..PASSWORD.." /e /b", "", SW_SHOWNORMAL, true);

     


    AKKUMIS

    Цитата:
    ...Подскажите,как можно делать ,чтоб все эти документы открылись в одной же странице...

  • Добавить на страницу web-объект  "Web1".
  • Помещаем web-документы в папку проекта "Docs"
  • В событие "On Click" 1-й кнопки пишем: Web.LoadURL("Web1", "AutoPlay\\Docs\\web-документ1.html"); -- вместо "web-документ1.html" подставить имя своего документа
  • В событие "On Click" 2-й кнопки пишем: Web.LoadURL("Web1", "AutoPlay\\Docs\\web-документ2.html"); -- вместо "web-документ2.html" подставить имя своего документа
    и т.д.

  • Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 23:16 17-02-2013 | Исправлено: tavria2, 23:37 17-02-2013
    collagen

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня вопрос к счастливым обладателям лицензионной программы. В пункте меню Align (Выравнивание) есть последний пункт To Page/Dialog (По странице/диалоговому окну). В "пиратке" левее этой надписи стоит иконка (лист бумаги с "галкой"), а по логике работы и описанию в справке можно предположить, что на этом месте должен быть обычный "чекбокс", а иконка его только прикрывает. Верно ли мое предположение?

    Всего записей: 91 | Зарегистр. 28-01-2011 | Отправлено: 14:16 18-02-2013
    AKKUMIS



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tavria2
    [q][/q]
    Спасибо большое большое! Все заработала.

    Всего записей: 6 | Зарегистр. 17-02-2013 | Отправлено: 14:34 18-02-2013
    tavria2



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

    Цитата:
    левее этой надписи стоит иконка (лист бумаги с "галкой"), а по логике работы и описанию в справке можно предположить, что на этом месте должен быть обычный "чекбокс", а иконка его только прикрывает. Верно ли мое предположение?

    Нет, там действительно стоит иконка (лист бумаги с "галкой"). Скорее всего ты не понял как этим использоваться.
  • Выделяем объект или группу объектов которые нужно выровнять
  • В меню "Align" выбираем пункт "To Page/Dialog" (лист бумаги с "галкой")
     
    После этого в меню "Align" становятся доступны пункты меню для выравнивания...
     
    P.S. Я пользуюсь AMS Personal Edition 8.0.7.0

  • Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 16:04 18-02-2013 | Исправлено: tavria2, 16:25 18-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Не дайте умереть в муках! Оч нужно пользовать функцию SetDIBitsToDevice из gdi32.dll в AMS (если это конечно возможно). Поделитесь опытом! Я не оч продвинутый программист. На сегодняшний день имею сведения о том, что необходимо выделить в памяти массив для bitmap (где? как? плагин MemoryEx сгодится для этого?). В функцию нужно передать handle этого массива (помимо прочих параметров), но самое главное - как можно передать в dll параметры в виде массива, который описывает структуру BITMAPINFO?? Через стандартный вызов функций dll средствами AMS как я понял передаются только параметры в виде "строковых" занчений  - т.е. цифру или текст можно передать, а массив как?? Неужели придется в VB мастерить враппер (свою промежуточную dll или ocx - как раз давно делал такую для работы с FTDI устройством с поддержкой полного функционала, но если честно опять все вспоминать не хочется - верится, что можно и без промежуточной прокладки обойтись..) Оч нужно отрисовывать сравнительно быструю графику 800х600х8...32(в плане цвета - можно и урезанную, даже 256 бит сойдет). Поможите люди добрыя.. "сами мы не местныя", не шибко программист, начинающий вобщем Трижды спасибо заранее за наводящие пинки!

    Отправлено: 16:38 18-02-2013
    collagen

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tavria2
    Ничего не имею против.
    Вот частичный перевод справки по АМС на русский язык.
      http://rghost.ru/43894246
    Этот пункт выравнивания работает так, как написано в справке. Просто я подумал, что если "галка" стоит - идет выравнивание по стороне страницы, если "галки" нет - по "доминирующему" объекту.
       Есть еще вопрос по условному оператору if. Как правильно, с точки зрения программиста, перевести ключевое слово else - "ещё" или "иначе" (я склоняюсь ко второму варианту). То же самое с elseif - здесь я думаю перевод ещё-если.
     И еще, я там перевел 10 урок в Руководстве пользователя про Основы написания скриптов. Хотелось чтобы кто-либо из знающих программирование это прочитал, с целью не наделал ли я при переводе логических ошибок. Заранее спасибо.

    Всего записей: 91 | Зарегистр. 28-01-2011 | Отправлено: 16:44 18-02-2013 | Исправлено: collagen, 18:49 18-02-2013
    tavria2



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

    Цитата:
     Как правильно, с точки зрения программиста, перевести ключевое слово else - "ещё" или "иначе"

    "Иначе", "в противном случае", ... - ну никак не "ещё".

    Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 18:16 18-02-2013
    Zloy_Gelud



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

    Цитата:
     как можно передать в dll параметры в виде массива, который описывает структуру BITMAPINFO??

    Например, так:

    Код:
    local BITMAPINFO = MemoryEx.DefineStruct{ DWORD("Size");
                                              INT  ("Width");
                                              INT  ("Height");
                                              WORD ("Planes");
                                              WORD ("BitCount");
                                              DWORD("Compression");
                                              DWORD("SizeImage");
                                              INT  ("XPelsPerMeter");
                                              INT  ("YPelsPerMeter");
                                              DWORD("ClrUsed");
                                              DWORD("ClrImportant");
                                              DWORD("RGBQuad");
                                            };
     
    local hBITMAPINFO = BITMAPINFO:New();
    local pBITMAPINFO = hBITMAPINFO:GetPointer();
    -- в функции StretchDIBits использовать pBITMAPINFO в качестве указателя на структуру BITMAPINFO
    -- result = DLL.CallFunction("gdi32.dll", "StretchDIBits", ...
    hBITMAPINFO:Free();

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 18:38 18-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Zloy_Gelud
     
    Спасибо вам за информацию, только что приехал и попробовал наваять чего-нить. Но как-то не вышло сходу (хотя все до функции SetDIBitsToDevice "заработало" сразу и выдало уведомление об "успехе"). Но в итоге функция вернула "0" (( Что-то я не так делаю, прошу еще раз пендаль волшебный (взгляните на мои "труды" если не сложно).  
     

    Код:
     
    local disp = {};
    disp.Width = 800;
    disp.Height = 600;
    disp.Handle = Application.GetWndHandle();
    disp.DevCH = DLL.CallFunction("User32.dll", "GetDC", disp.Handle, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
    --создание структуры, описывающей bitmap изображение (BITMAPINFO)
    local BITMAPINFO = MemoryEx.DefineStruct {
    DWORD    ("biSize", disp.Width * disp.Height * 3);
    INT        ("biWidth", disp.Width);
    INT        ("biHeight", disp.Height);
    WORD    ("biPlanes", 1);
    WORD    ("biBitCount", 24);
    DWORD    ("biCompression", 0);
    DWORD    ("biSizeImage", 0);
    INT        ("XPelsPerMeter"); --что это?
    INT        ("YPelsPerMeter"); --что это?
    DWORD    ("biClrUsed", 0);
    DWORD    ("biClrImportant", 0);
    DWORD    ("biRGBQuad", 0); --что это?
    };
    apper1 = Application.GetLastError();
    --получение указателя на структуру BITMAPINFO
    local hBITMAPINFO = BITMAPINFO:New();
    apper2 = Application.GetLastError();
    local pBITMAPINFO = hBITMAPINFO:GetPointer();
    apper3 = Application.GetLastError();
    --создание массива из disp.Width * disp.Height * 3 байт для указания цветов каждого пикселя
    disp.BMHandle = MemoryEx.Allocate(disp.Width * disp.Height * 3);
    apper4 = Application.GetLastError();
    --
    if (disp.Handle > -1 and disp.DevCH ~= "") then
        if (apper1 == 0 and apper2 == 0 and apper3 == 0 and apper4 == 0) then
            --если все OK
            disp.args = disp.DevCH .. ",0,0," .. tostring(disp.Width) .. "," .. tostring(disp.Height) .. ",0,0,0," .. tostring(disp.Height) .. "," .. disp.BMHandle .. "," .. pBITMAPINFO .. ",0";
            -- в функции StretchDIBits использовать pBITMAPINFO в качестве указателя на структуру BITMAPINFO
            dispIsOK = DLL.CallFunction("gdi32.dll", "SetDIBitsToDevice", disp.args, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
            apper1 = Application.GetLastError();
            hBITMAPINFO:Free();
            apper2 = Application.GetLastError();
            if (dispIsOK ~= "") then
                if (apper1 == 0 and apper2 == 0) then
                    message = "Успешно!\n\n";
                    message = message .. "Структура: " .. disp.DevCH .. "\n";
                    message = message .. "BitmapInfo: " .. pBITMAPINFO .. "\n";
                    message = message .. "Bitmap: " .. disp.BMHandle .. "\n";
                    message = message .. "Результат: " .. dispIsOK;
                    Dialog.Message("Уведомление", message, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
                else
                    Dialog.Message("Ошибка", "Не удалось удалить структуру BITMAPINFO!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);    
                end
            else
                Dialog.Message("Ошибка", "Не удалось вывести bitmap!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);    
            end
        else
            Dialog.Message("Ошибка", "Не удалось выделить память!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);    
        end
        if (DLL.CallFunction("User32.dll", "ReleaseDC", disp.Handle .. "," .. disp.DevCH, DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL) == "") then
            Dialog.Message("Ошибка", "Не удалось удалить контекст устройства!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);    
        end
    else
        Dialog.Message("Ошибка", "Не удалось создать контекст устройства!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);    
    end
     
     

     
    Пояснения: я выделяю массив по 3 байта на пиксель и ничего туда не пишу, потому как мне б "хоть что-то" для начала вывести на экран (хоть все черное, хоть все белое, да хоть пурпурное - лишь бы пощупать функцию для начала). Как я понимаю в изначально выделенных байтах будет либо 0x000000 либо 0xFFFFFF (на каждый пиксель)? Или я ошибаюсь? С NULLом не оч дружу (в плане осознания), может это и губит?
     
    Добавлено:
    Zloy_Gelud
     
    Еще наблюдаю периодически странное пока для меня явление: иногда функция GetDC возвращает отрицательный хэндл для контекста окна. Совершенно не предсказуемо. И еще одна странность - если я устанавливаю в настройках проекта "запускать от имени администратора", то эффект выдачи отрицательного хэндла проявляется чаще, чем при обычном запуске (As invoker). И это меня слегка пугает, т.к. сейчас я вызываю функцию однократно, а что будет когда я буду кадры отрисовывать 100 раз в секунду?.. Отрицательный хэндл имеется в виду не "-1", а "-179832749238" (ну или типа того). Пробовал устанавливать и DLL_RETURN_TYPE_LONG (первая мысль возникла, что причина в изменении старшего бита переменной и из-за этого число становится отрицательным) - не помогло, все равно иногда проскакивает отрицательное число.

    Отправлено: 23:28 18-02-2013
    AKKUMIS



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здрастье еще раз! Как можно делать тесты. У кого есть примеры тестов? Подскажите пожалуйста

    Всего записей: 6 | Зарегистр. 17-02-2013 | Отправлено: 09:34 19-02-2013
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vazzzzz
    Сразу можно сказать, что ты не правильно заполняешь структуры.
    Надо как-то так:

    Код:
    hBITMAPINFO.Size     = MemoryEx.Size(BITMAPINFO); -- размер структуры
    hBITMAPINFO.Width    = tDisp.Width;
    hBITMAPINFO.Height   = (tDisp.Height * (-1));
    hBITMAPINFO.BitCount = 24;
    hBITMAPINFO.Planes   = 1;

    Во-вторых, не обязательно заполнять все элементы структуры. Заполни только необходимые.
    Дальше лень разбираться.
     
    Добавлено:

    Цитата:
    иногда функция GetDC возвращает отрицательный хэндл для контекста окна.

    Можно смело забить на это.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 09:48 19-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Zloy_Gelud
     
    Подскажите, правильно ли я понимаю в вопросе о структурах? Меня если честно настараживает получение двух управляющих заголовков для одной структуры BITMAPINFO - это hBITMAPINFO и hStruct.. Структура это как я понимаю не просто набор байт на низком уровне - это как associative array в AMS? И еще, взял из примера в справке MemoryEx.Allocate, неочень понимаю для чего это (видимо что-то связано с ограничением доступа к куску памяти других приложений, который я резервирую под структуру). Вобщем чего-то я начинаю запутываться от незнания мат.части языков высокого уровня (раньше на асме писал и в основном для железа, а не для Windows). Можно еще пнуть меня немного?
     

    Код:
     
    -- +------------------------------------------------------------------+
    -- |   Указываем типы данных в структуре и их имена для компилятора   |
    -- +------------------------------------------------------------------+
    local BITMAPINFO = MemoryEx.DefineStruct {
    DWORD ("Size");
    INT   ("Width");
    INT   ("Height");
    WORD  ("Planes");
    WORD  ("BitCount");
    DWORD ("Compression");
    DWORD ("SizeImage");
    DWORD ("ClrUsed");
    DWORD ("ClrImportant");
    };
    -- +------------------------------------------------------------------+
    -- |    Создаем структуру в памяти, получаем заголовок и указатель    |
    -- +------------------------------------------------------------------+
    --получение заголовка на структуру BITMAPINFO
    local hBITMAPINFO = BITMAPINFO:New();
    --получение указателя
    local pBITMAPINFO = hBITMAPINFO:GetPointer();
    -- +------------------------------------------------------------------+
    -- |               Указываем сами значения в структуре                |
    -- +------------------------------------------------------------------+
    local lpBuff = MemoryEx.Allocate(MemoryEx.StructSize(BITMAPINFO));
    if(lpBuff)then
       local hStruct = MemoryEx.AssignStruct(lpBuff, BITMAPINFO);
       if(hStruct)then
          hStruct.Size = disp.Width * disp.Height * 3;
          hStruct.Width = disp.Width;
          hStruct.Height = disp.Height;
          hStruct.Planes = 1;
          hStruct.BitCount = 24;
          hStruct.Compression = 0;
          hStruct.SizeImage = 0;
          hStruct.ClrUsed = 0;
          hStruct.ClrImportant = 0;
          hStruct:Close();
       end
       MemoryEx.Free(lpBuff);
    end
     

    Отправлено: 12:27 19-02-2013
    Zloy_Gelud



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

    Цитата:
    Меня если честно настараживает получение двух управляющих заголовков для одной структуры BITMAPINFO - это hBITMAPINFO и hStruct..

    А зачем тебе 2 раза получать указатель на структуру?  
    hBITMAPINFO - получили дескиптор структуры
    pBITMAPINFO - получили указатель на буфер, содержащий структуру
    Как изменять значения в структуре я приводил пример:

    Цитата:
    hBITMAPINFO.Size     = MemoryEx.Size(BITMAPINFO); -- размер структуры
    hBITMAPINFO.Width    = tDisp.Width;
    hBITMAPINFO.Height   = (tDisp.Height * (-1));
    hBITMAPINFO.BitCount = 24;
    hBITMAPINFO.Planes   = 1;


    Цитата:
    Структура это как я понимаю не просто набор байт на низком уровне - это как associative array в AMS?

    Что-то типо того.

    Цитата:
    И еще, взял из примера в справке MemoryEx.Allocate, неочень понимаю для чего это  

    MemoryEx.Allocate - выделят буфер в памяти. В том числе для структур, помещения строк в память, чисел и т.д.
    В аргументах DLL.CallFunction используется указатель на буфер pBITMAPINFO.
    После всех действий необхрдимо память освободить.

    Цитата:
    ocal lpBuff = MemoryEx.Allocate(MemoryEx.StructSize(BITMAPINFO));
    if(lpBuff)then
       local hStruct = MemoryEx.AssignStruct(lpBuff, BITMAPINFO);
       if(hStruct)then  

    Это зачем. Выше я написал как заполнить структуру.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 14:11 19-02-2013
    AKKUMIS



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

    Всего записей: 6 | Зарегистр. 17-02-2013 | Отправлено: 14:29 19-02-2013
    vazzzzz

    Редактировать | Цитировать | Сообщить модератору
    Zloy_Gelud
     
    Благодарю тебя за терпение и подсказки. Вроде с записью данных в элементы структуры все срослось (попробовал прочитать из структуры с помощью MemoryEx.DWORD(pBITMAPINFO) - читает значение- УРА!).
     
    Теперь видимо надо понять что не так я делаю с выделением области для занесения R-G-B значений для каждого пиксела (по байту на каждый цвет).
     
    Я использую MemoryEx.Allocate(disp.Width * disp.Height * 3), эта функция возвращает указатель на начало буфера. Этот указатель и должен использоваться в функции SetDIBitsToDevice для определения точки начала считывания R-G-B кодов? api функция по прежнему возвращает 0 :'(
     
    Мне достаточно на первом этапе просто выделить для rgb область?
     
    Или обязательно нужно прописать значение каждого байта (мне для начала если честно пофиг какой там цвет получится, лишь хоть что-то вывело на экран)?
     
    Кстати не нужно этот буфер защищать с помощью Lock-функций каких-нить?

    Отправлено: 14:39 19-02-2013
    Zloy_Gelud



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

    Цитата:
    Мне достаточно на первом этапе просто выделить для rgb область?
     
    Или обязательно нужно прописать значение каждого байта (мне для начала если честно пофиг какой там цвет получится, лишь хоть что-то вывело на экран)?  

    Без понятия. Я не программист. Да и не разбирался как работает функция SetDIBitsToDevice.
    Можешь попробовать буффер, выделенный под RGB-массив, заполнить нулями MemoryEx.Zero. Может еще что...  
     
     
    Добавлено:

    Цитата:
    Кстати не нужно этот буфер защищать с помощью Lock-функций каких-нить?

    Нет, не надо.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 15:02 19-02-2013 | Исправлено: Zloy_Gelud, 15:03 19-02-2013
    Открыть новую тему     Написать ответ в эту тему

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