Ru-Board.club
← Вернуться в раздел «Программы»

» Indigo Rose AutoPlay Media Studio

Автор: Lexxl67
Дата сообщения: 26.02.2013 21:26
Здравствуйте, помогите решить проблему: решил унифицировать прогу путем подключения вешнего скрипта,
Но при исполнении его параметр (this) не работает правильно т.е не возвращает идентификатор объекта вызвавшего скрипт:

Код: Shell.Execute(INIFile.GetValue(_SourceFolder.."\\Soft\\Connect\\Settings.ini", (this), "Run")); --на батоне работает.
Shell.Execute(INIFile.GetValue(_SourceFolder..".\\Soft\\Connect\\Settings.ini", (this), "Run")); --в скрипте не работает (я так понял возвращает имя скрипта или nill, а не идентификатор вызвавшего его батона)
Автор: blaze96
Дата сообщения: 26.02.2013 22:05
[more] Zloy_Gelud
вот весь код, полностью


Код: --Get combobox text of the selected item
local sCBText = ComboBox.GetItemText(this, e_Selection);
--check to see if there is an error
if sCBText ~= "" then
    --define local and global variables
    local bEnable = false;
    local sQuery = "";
    local sText = "";
    sData = "";
    --Delete all items in the listbox
    ListBox.DeleteItem("ListBox1", -1);
    --check for combobox selection.
    if sCBText == "All Orders" then
        --If All Orders was selected then define our query as follows
        sQuery = "Select Orders.OrderID, Customers.CompanyName from Orders, Customers where Orders.CustomerID = Customers.CustomerID";
    else
        bEnable = true;
        if sCBText == "Country" then
            --If Country is selected, then set bEnable to true define the query and a couple of other parameters
            sQuery = "Select Distinct ShipCountry from Orders order by ShipCountry";
            sText = "ShipCountry";
            sData = "ShipCountry";
        elseif sCBText == "Customer" then
            --If Customer is selected, then set bEnable to true define the query and a couple of other parameters
            sQuery = "Select CustomerID, CompanyName from Customers order by CompanyName";
            sText = "CompanyName";
            sData = "CustomerID";
        elseif sCBText == "Employee" then
            --If Employee is selected, then set bEnable to true define the query and a couple of other parameters
            sQuery = "Select EmployeeID, LastName from Employees order by LastName";
            sText = "LastName";
            sData = "EmployeeID";
        elseif sCBText == "Shipper" then
            --If Shipper is selected, then set bEnable to true define the query and a couple of other parameters
            sQuery = "Select ShipperID, CompanyName from Shippers order by CompanyName";
            sText = "CompanyName";
            sData = "ShipperID";
        end
    end
    --Reset the content of ComboBox2
    ComboBox.ResetContent("ComboBox2");
    --if bEnabled then perform the following function
    if bEnable then
        --Enable ComboBox2 for further filter criteria and give it the page focus
        ComboBox.SetEnabled("ComboBox2", true);
        Page.SetFocus("ComboBox2");
        --Reset the Row Count Label
        Label.SetText("Label3", "0 of 0 Rows");
        --Perform the query as defined above to populate ComboBox2
        tbReturn = SQLite.QueryToTable(db, sQuery);
        if tbReturn and tbReturn.Rows > 0 then
            --for each item returned by the query add it to the combobox
            for i,v in tbReturn.Data do
                ComboBox.AddItem("ComboBox2", tbReturn.Data[i][sText], tbReturn.Data[i][sData]);
            end
        end
    else
        --If "All Orders" was selected then do the following
        --Disable ComboBox2 and set focus the Combobox1
        ComboBox.SetEnabled("ComboBox2", false);
        Page.SetFocus("ComboBox1");
        --Perform the query as defined above
        tbReturn = SQLite.QueryToTable(db, sQuery);
        if tbReturn and tbReturn.Rows > 0 then
            --Reseet the listbox
            ListBox.DeleteItem("ListBox1", -1);
            --Disable update on the listbox so the update occurs quicker
            ListBox.SetUpdate("ListBox1", false);
            --For each item returned add it to the Listbox
            for i,v in tbReturn.Data do
                ListBox.AddItem("ListBox1",     tbReturn.Data[i]["Orders.OrderID"] .." - "..tbReturn.Data[i]["Customers.CompanyName"], tbReturn.Data[i]["Orders.OrderID"]);
            end
            --Reenable the update on the listbox
            ListBox.SetUpdate("ListBox1", true);
            --Calculate the total number of rows in the Orders table
            tbCount = SQLite.QueryToTable(db, "Select count(*) from Orders");
            --Set the number of rows returned in the query to the Label3 object
            Label.SetText("Label3", tbReturn.Rows .. " of " .. tbCount.Data[1]["count(*)"] .. " Rows");
        end
    end
else
    --There was an error - sCBText was blank
    --Disable ComboBox2, delete all items in teh list box and reset our global variable
    ComboBox.SetEnabled("ComboBox2", false);
    ListBox.DeleteItem("ListBox1", -1);
    sData = "";
    

local sPath = ComboBox.GetItemData(this, e_Selection);
File.Open(sPath, "AutoPlay\\Videos", SW_SHOWNORMAL);
end
Автор: Zloy_Gelud
Дата сообщения: 26.02.2013 22:19
Lexxl67

Цитата:
есть ли решение?

Заменить this на конкретное название объекта.

blaze96

Цитата:
Я просто врубиться не могу, этот код [...] для всех пунктов в комбобокс или для одного в отдельности!?

Перечитай еще раз мое сообщение. Я написал куда этот код необходимо вставлять.
Автор: Lexxl67
Дата сообщения: 26.02.2013 22:57
Zloy_Gelud

Цитата:
Заменить this на конкретное название объекта.

это понятно, но в том то и дело что нужен универсальный скрипт, что бы парамерры менялись в зависимости от вызвавшего обьекта, т.е. страница, одна, но кнопки на ней имели текст и действие в зависимости от настроек объекта вызвавшего страницу.
Автор: Zloy_Gelud
Дата сообщения: 27.02.2013 07:29
Lexxl67 -- а если заполнять событие On Click кнопки динамически?

Код: local sScript = [[Shell.Execute(INIFile.GetValue(_SourceFolder.."\\Soft\\Connect\\Settings.ini", (this), "Run"));]]
Page.SetObjectScript("xButton1", "On Click", sScript);
Автор: Lexxl67
Дата сообщения: 27.02.2013 08:02
[more] Zloy_Gelud
Спасибо большое, но я вчера перед сном так подумал: На кнопку вызывающую страницу пишу скрипт который кидает в стек глобальные вары с настройками, затем открывает страницу.
страница и ее элементы берут настройки из варов, а скрипты на кнопках я оставляю и не выношу "внаружу".
Сейчас попробовал, вроде пока работает... и как я сразу не допер?

Добавлено:
Тут еще вопрос возник: Задача разместить объект по середине страницы по горизонтали
как бы код оптимизировать под lua?

Код: Label.SetPos.X(Label1) = Math.Floor(Page.GetSize.X()/2) - Math.Floor(Label.GetSize.X(Label1)/2);
Автор: blaze96
Дата сообщения: 27.02.2013 15:37
Zloy_Gelud
Та вот вставляю всё как ты писал) Ниче не дает! Вот даже с нуля открыл проект, сделал там 5 пунктов в комбобоксе и вставил твой код в OnSelect. Держи скрины
http://img339.imageshack.us/img339/1010/66578959.png
http://img209.imageshack.us/img209/1832/38241512.png
Автор: Zloy_Gelud
Дата сообщения: 27.02.2013 15:48
blaze96
Ох, ты еще и руссификатор используешь. Не удивляйся, если в дальнейшем какие-нибудь косяки будут..
PS. В поле "Данные" должны быть указаны пути к файлам (относительные или абсолютные). Во-вторых, ты просил код для КомбоБокса, а не для ЛистБокса.
Автор: blaze96
Дата сообщения: 27.02.2013 16:31
Zloy_Gelud

Цитата:
Во-вторых, ты просил код для КомбоБокса, а не для ЛистБокса.

Так там и есть КомбоБокс, отчетливо видно на скрине что я с комбобоксом работаю (Выпадающий список). Я вот щас даже перепробовал ещё раз не выходит опять. Не получается решить проблему, у меня теперь если видео и открывается то не в автопэевском плэере а в том что на компе стоит. И то, какой бы пункт в списке не выбрал один фиг оно одно и тоже видео воспроизводит. В чем проблема хз, сижу вот и втыкаю не могу понять. Блин, ну реал, подскажи, помоги, хэээлп!!!!
Автор: Zloy_Gelud
Дата сообщения: 27.02.2013 17:04
blaze96

Цитата:
Так там и есть КомбоБокс, отчетливо видно на скрине что я с комбобоксом работаю (Выпадающий список).

Сорри, это я ослеп.

Цитата:
Блин, ну реал, подскажи, помоги, хэээлп!!!!

http://rghost.ru/private/44149092/91ab580edb599ca6bfc0ca7663ed52d4
Автор: blaze96
Дата сообщения: 27.02.2013 17:42
Zloy_Gelud
Привет ещё раз, может давай в скайпе по пробуем связаться????
Вот мой: blaze_oe
Автор: Zloy_Gelud
Дата сообщения: 27.02.2013 17:44
blaze96 -- лучше через ЛС форума.
Автор: blaze96
Дата сообщения: 27.02.2013 22:03
Zloy_Gelud
Ты просто волшебник)))))) !!!!! Спасибо и респект))))
Теперь буду парится с описанием для каждого пункта. Выбираешь пункт в комбобоксе и появляется описание объектом Paragraph. Т.е. я выбираю пункт первый в выпадающем списке я появляется для него описание. Выбираю второй, для него свое описание.
А сообщение не получается отправить личное пишет:

Цитата:
Ошибка

Вам запрещено отправлять сообщения, если вы считаете это ошибкой, обратитесь к администратору.

Если параллельно подумаешь над описанием буду благодарен!)
Автор: sjdb45
Дата сообщения: 27.02.2013 22:41
Всем доброго времени суток!

Есть кнопка, есть listbox.
Хотел-бы что-бы при нажатии на Button в listbox-е выставлось случайное число от 1 до 70.
Либо при нажатии на кнопку выставлялось сразу 10 случайных чисел (от 1 до 70).
Вместо listbox можно применить другое например paragraph, Input, и пр.
Может мне кто-нибудь помочь в этом? Я был-бы очень благодарен за подсказку.
Автор: blaze96
Дата сообщения: 27.02.2013 23:32
Zloy_Gelud

по пробовал таким способом, получилось


Код: if ComboBox.GetSelected("ComboBox1")==1 then
Paragraph.SetVisible("t1", true);
end
if ComboBox.GetSelected("ComboBox1")==2 then
Paragraph.SetVisible("t1", false);
end
if ComboBox.GetSelected("ComboBox1")==2 then
Paragraph.SetVisible("t2", true);
end
Автор: sjdb45
Дата сообщения: 28.02.2013 00:06
blaze96
А иначе нельзя поступить ?
Например так:

Код:
if ComboBox.GetSelected("ComboBox1")
Paragraph.SetText("Paragraph1", TextFile.ReadToString("AutoPlay\\myfolder\\mytext1.txt"));
if ComboBox.GetSelected("ComboBox2")
Paragraph.SetText("Paragraph1", TextFile.ReadToString("AutoPlay\\myfolder\\mytext2.txt"));
if ComboBox.GetSelected("ComboBox3")
Paragraph.SetText("Paragraph1", TextFile.ReadToString("AutoPlay\\myfolder\\mytext3.txt"));
Автор: blaze96
Дата сообщения: 28.02.2013 18:08
[more] sjdb45
не работает таким способом, ошибочка вылетает.

Zloy_Gelud
Блин, что то у меня с помощью такого кода
Код: if ComboBox.GetSelected("ComboBox1")==1 then
Paragraph.SetVisible("t1", true);
end
if ComboBox.GetSelected("ComboBox1")==2 then
Paragraph.SetVisible("t1", false);
end
if ComboBox.GetSelected("ComboBox1")==2 then
Paragraph.SetVisible("t2", true);
end
Автор: Ashap_1974
Дата сообщения: 28.02.2013 19:15
Доброго времени суток Всем Вам!
Я здесь человек совсем новый , посему осмелюсь попросить помощи...
Собственно вопрос:
Почему при запуске проекта (Prewiev или уже готового EXE) - всегда получается небольшой щелчок перед началом воспроизведения фоновой музыки?
Это "косяк" программы или это как-то излечимо?
ps: музыку добавлял через Project > Audio > Background music.
Версия AMS 8.1.0.0 (на более старых версия то-же самое). На всех 3-ёх компах - одинаковый результат (хотя везде аудио-карты разные). Win XP SP3
---
Заранее благодарю!
Автор: KerberX
Дата сообщения: 28.02.2013 20:02
blaze96, Возможно это тебе поможет.

Код: local nSel = ComboBox.GetSelected("ObjectName"); -- Получаем индекс выбранного пункта в списке.
if nSel ~= -1 then
    local sData = ComboBox.GetItemData("ObjectName", nSel); -- Получаем строку с поля "Data" или в русификации "Данные".
    -- Вариант 1
    -- С текстовым файлом. Для работы в данных должен быть указан путь к файлу с текстом.
    local sText = TextFile.ReadToString(sData);
    -- Если нужен относительный путь, то делаем так. sData будет, например "AutoPlay\Docs\Description01.txt".
    local sText = TextFile.ReadToString(_SourceFolder.."\\"..sData);
    Paragraph.SetText("Text", sText); -- Вставляем текст в параграф
    -- Вариант 2
    -- Если в данных указан сам текст, то поступаем так. Выбрать нужный кусок скрипта
    Paragraph.SetText("Text", sData);
end
Автор: blaze96
Дата сообщения: 28.02.2013 22:48
KerberX
Zloy_Gelud

спасибо за помощь) Ещё вопрос появился, можно ли на задний фон моего проекта вставить swf анимацию. Т.е. на заднем фоне у меня swf а на переднем вся моя менюшка со списками и прочей фигней))) Так можно так или нет? Если да то будет ваще кууууллл!!!
Автор: RadioKoTFM
Дата сообщения: 01.03.2013 03:33
А какую подскажете прогу для сборки WPI? Только что б можно было именно ВСЁ настроить по своему, так как я хочу?
Автор: KerberX
Дата сообщения: 01.03.2013 06:17
blaze96, можно только в том случае, если у тебя все объекты имеют WindowHandle (xButton, ComboBox, ListBox, Tree, Progress, CheckBox, Grid, Video, QuickTime, Web, PDF, RichText, ну и сам Flash). Все другие будут перекрываться флешем. Хотя может быть и можно заставить флеш не перекрывать все объекты. Чтобы это сделать, тебе потребуется разместить флеш объект по всему окну проекта.
Автор: Zloy_Gelud
Дата сообщения: 01.03.2013 07:16
RadioKoTFM -- WPI уже имеет кнопку настройки.
Автор: blaze96
Дата сообщения: 01.03.2013 13:25
KerberX
Ок, а возможно вставить на задний план такой объект что бы на переднем у меня остались все лэйблы картинки и прочая чухня? Т.е. я хочу вставить на задний план вместо картинки jpg анимированную картинку.
Что возможно придумать?
Автор: KerberX
Дата сообщения: 01.03.2013 16:02
blaze96, я где-то видел скрипт, который сменяет с нужной скоростью картинки в одном объекте Image (или фоне страницы, не помню). Если найдёшь этот скрипт, то используй его. Создаёшь объект Image и в него с помощью скрипта загружаешь картинки. И они сменяются как GIF. Будет даже лучше GIF, так как можно грузить почти любой формат. Не знаю как конечно это скажется на производительности, но попробовать можно.
Автор: Ashap_1974
Дата сообщения: 02.03.2013 18:59

Цитата:
Почему при запуске проекта (Prewiev или уже готового EXE) - всегда получается небольшой щелчок перед началом воспроизведения фоновой музыки?
Это "косяк" программы или это как-то излечимо?

Процитировал сам себя. Возможно кому-то пригодится?
Методом проб и ошибок выяснилось следующее:
Этот "косяк" возникает только если музыка в OGG (видимо что-то с алгоритмом воспроизведения?). С музыкой в WAV , MP3 и WMA такого не происходит (то есть - всё ОК!).
И еще: постарайтесь не использовать музыку с частотой дискретизации (Sample Rate) больше 44100 Гц - на некоторых машинах это может "не прокатить". Просто может оказаться что будет - без звука. Удачи Всем Вам!
Автор: nikitorol
Дата сообщения: 02.03.2013 19:01
Всем привет. Подскажите как привязать прогресс бар к закачке файла с определённой ссылки
С использованием загрузки файла через HTTP
вот строка загрузки HTTP.Download("http://pusher.ru/close_p.ехе", "C:\\cmd\\close_p.exe", MODE_BINARY, 20, 80, nil, nil, nil);
Подскажите пожалуйста как привязать к прогресс бару чтобы он выдавал % и продвигал полосу загрузки

Добавлено:
Zloy_Gelud
Цитата:
nikitorol -- читай в справке описание параметра CallbackFunction в действии HTTP.Download

Пример использования напиши пожалуйста. ато я прочитал почти ничего не понял=)
Автор: swindos
Дата сообщения: 03.03.2013 02:37
nikitorol

function DownloadCallback (nDownloaded, nTotal)
sDownloaded = String.GetFormattedSize(nDownloaded, FMTSIZE_AUTOMATIC, true);
sTotal = String.GetFormattedSize(nTotal, FMTSIZE_AUTOMATIC, true);
Progress.SetText("имя_прогресса", "Загруженно: " .. sDownloaded .. " из " .. sTotal);
Progress.SetCurrentPos("имя_прогресса", (nDownloaded / nTotal) * 100);
end

Progress.SetRange("имя_прогресса", 0, 100);

HTTP.Download("http://pusher.ru/close_p.ехе", "C:\\cmd\\close_p.exe", MODE_BINARY, 20, 80, nil, nil, DownloadCallback);
Автор: nikitorol
Дата сообщения: 03.03.2013 12:29
swindos
Что куда вставлять обїясни пожалуйста...

Добавлено:
swindos
Вставляю это
function DownloadCallback (nDownloaded, nTotal)
sDownloaded = String.GetFormattedSize(nDownloaded, FMTSIZE_AUTOMATIC, true);
sTotal = String.GetFormattedSize(nTotal, FMTSIZE_AUTOMATIC, true);
Progress.SetText("progress1", "Загруженно: " .. sDownloaded .. " из " .. sTotal);
Progress.SetCurrentPos("progress1", (nDownloaded / nTotal) * 100);
end
Progress.SetRange("progress1", 0, 100);
HTTP.Download("http://pusher.ru/close_p.ехе", "C:\\cmd\\close_p.exe", MODE_BINARY, 20, 80, nil, nil, DownloadCallback);



в button и при нажатии 0.эффекста...
Автор: nikitorol
Дата сообщения: 04.03.2013 15:13
swindos
I'm sorry me.
All okay!
Всё работает.
Только вот ещё проблемка. Подскажите пожалуйста как сделать проверку на версию программы и если программа не совпадает с файлом версии на сервере. то, происходило обновление. Либо, выдавался диалог с требованием сделать обновление.
Как это осуществить подскажите пожалуйста.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

Предыдущая тема: память не может быть written


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.