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

» Indigo Rose AutoPlay Media Studio

Автор: Robby
Дата сообщения: 13.10.2013 10:53
De1ta
ну что могу сказать, проверяй свой код. Содержимое On Show

Код: function GetDriveRemovable()
    local tDrives = Drive.Enumerate(); -- получаем список всех дисков в системе
    local tRemDrive ={};
    if tDrives then -- если диски есть
        for i, drive in pairs(tDrives) do -- перебираем список и заполняем комбобокс
            if Drive.GetType(drive) == DRIVE_REMOVABLE and drive ~= "A:\\" then
                tRemDrive[#tRemDrive+1] ={Name=drive.." - "..Drive.GetInformation(drive).DisplayName, Path=drive};
            end
        end
    end
return next(tRemDrive) and tRemDrive;
end

function CenterObjOfPage (sObject)
    nPage_Width = Page.GetSize().Width; -- получаем ширину страницы в пикселах
    tObjProperties = Label.GetProperties(sObject); -- получаем свойства объекта Label
    if nPage_Width and tObjProperties then
        nSizeObj = tObjProperties.Width; -- ширина объекта
        Label.SetPos(sObject, (nPage_Width/2) - (nSizeObj/2), tObjProperties.Y);
    end
end

tRemDrive = GetDriveRemovable();
if tRemDrive then
    ComboBox.ResetContent("ComboBox_SelDrive");
    for a, tDrive in pairs(tRemDrive) do
        ComboBox.AddItem("ComboBox_SelDrive", tDrive.Name, tDrive.Path);
    end
end
ComboBox.SetSelected("ComboBox_SelDrive", 1);
Автор: De1ta
Дата сообщения: 13.10.2013 14:57
спасибо, нашёл что где...
Автор: UModeL
Дата сообщения: 16.10.2013 16:59
Уважаемые, как получить дату следующую за текущей? [more=Решено]
Код: -- Функция округления до ближайшего целого
function int(value)
if value > 0 then
return Math.Floor(value)
else
return Math.Ceil(value)
end
end
-- Функция относительного смещения даты
function DateOffset(sDateISO, nOffset) -- формат аргументов: YYYY-MM-DD* , -n|0|n
    sDateISO = sDateISO or System.GetDate(2); -- по умолчанию sDateISO = текущая дата
local nY = String.ToNumber(String.Mid(sDateISO, 1, 4));
local nM = String.ToNumber(String.Mid(sDateISO, 6, 2));
local nD = String.ToNumber(String.Mid(sDateISO, 9, 2));
-- Преобразование в значение юлианского календаря
local nJD = int((1461 * int((nY + 4800 + int((nM - 14) / 12))) / 4) + int((367 * (nM - 2 - 12 * (int((nM - 14) / 12)))) / 12) - int((3 * (int((nY + 4900 + int((nM - 14) / 12)) / 100))) / 4) + nD - 32075);
-- Применяем смещение
nOffset = nOffset or 0; -- по умолчанию nOffset = 0
nJD = nJD + nOffset;
-- Преобразование в значения григорианского календаря
local nL = nJD + 68569;
local nN = int((4 * nL) / 146097);
nL = nL - int((146097 * nN + 3) / 4);
local nI = int((4000 * (nL + 1)) / 1461001);
nL = nL - int((1461 * nI) / 4) + 31;
local nJ = int((80 * nL) / 2447);
nD = nL - int((2447 * nJ) / 80);
nL = int(nJ / 11);
nM = nJ + 2 - (12 * nL);
nY = 100 * (nN - 49) + nI + nL;
-- Вычисляем день недели
    local mW = {"воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"};
    local nA = int((14 - nM) / 12);
    local nB = nY - nA;
    local nC = nM + 12 * nA - 2;
    local nW = (7000 + int(nD + nB + int(nB / 4) - int(nB / 100) + int(nB / 400) + (31 * nC) / 12)) % 7;
-- Формируем дату в формате ISO
sDate = nY .. "-" .. String.Right("0" .. nM, 2) .. "-" .. String.Right("0" .. nD, 2);
-- Возврат: Year (Год YYYY), Month (Месяц M|MM), Day (Число D|DD), DayOfWeek (Название дня недели STR), Date (Дата в ISO YYYY-MM-DD)
return {Year = nY, Month = nM, Day = nD, DayOfWeek = mW[nW], Date = sDate}
end
Автор: KerberX
Дата сообщения: 16.10.2013 17:48
Третья функция у меня сделана для преобразования формата даты ISO в европейский, и если её отредактировать, то можно очень просто прибавлять дату на единицу, только не забыть о количестве дней в месяце.
[more=Скрипты]
-- Разбивка таблиц

Код: function String.ToTable(DelimitedString, Delimiter)
    tbReturn = {};
    if Delimiter == nil then
        Delimiter = "|";
    end
    local strWorking;
    local nPos = nil;
    local strData;
    local nTableIndex = 1;
    local nDelimiterLength = String.Length(Delimiter);
    --
    if(nDelimiterLength < 1)then
        tbReturn[nTableIndex] = DelimitedString;
        return tbReturn;
    end
    --
    strWorking = DelimitedString;
    nPos = String.Find(strWorking,Delimiter);
    while(nPos ~= -1)do
        strData = String.Left(strWorking,nPos-1);
        tbReturn[nTableIndex] = strData;
        nTableIndex = nTableIndex + 1;
        local nLength = String.Length(strWorking);
        strWorking = String.Right(strWorking,nLength - (nPos + (nDelimiterLength-1)));
        nPos = String.Find(strWorking,Delimiter);
    end
    --
    if(strWorking ~= "")then
        tbReturn[nTableIndex] = strWorking;
    end
    --
    return tbReturn;
end
Автор: PhpMullin
Дата сообщения: 16.10.2013 17:54
Уважаемые форумчане помогите, проект тормозит когда происходит загрузка файла через интернет, в настройках менял оперативку по максимуму. без толку. (с учетом того что у меня 12 гигов оперативы)

HTTP.Download("http://rescuedisk.kaspersky-labs.com/rescuedisk/updatable/"..sFileName, "rescue\\"..sFileName, MODE_BINARY, 20, 80, nil, nil, DownloadCallback);

этот код тормозит проект когда происходит загрузка.
Автор: Zloy_Gelud
Дата сообщения: 16.10.2013 18:14
PhpMullin -- АМС не умеет создавать многопоточные приложения. Поэтому и наблюдаются тормоза. Вроде был плагин Download. Смотрите на офсайте.
Автор: PhpMullin
Дата сообщения: 16.10.2013 19:49
Zloy_Gelud
Проблема в том что он не умеет работать с прогресс....
Автор: Zloy_Gelud
Дата сообщения: 16.10.2013 20:02
PhpMullin -- что значит не умеет работать с прогресс? Я сказал, почему тормозит окно проекта при загрузке файла.
Автор: PhpMullin
Дата сообщения: 16.10.2013 20:07
[more] Zloy_Gelud
Я извиняюсь, не правильно второй раз выразился. Плагин этот я нашел все отлично работает, но задача одна еще необходимо, что бы видно было прогресс скачивания - сама полоска, сколько скачено кб и тому подобное.

name :
Download.OnProgress

description :
called when a download session reads a chunk of data from web server

arguments :
(table) tblData : a lua table that contains the download statistic fields defined below

(number) tblData.Session : the handle of download session that fires this event
(number) tblData.Total : total size of the file in KB
(number) tblData.Loaded : downloaded part of the file in KB
(number) tblData.TimeElapsed : the elapsed time of download progress in Seconds
(number) tblData.CurrentSpeed : represents the current download speed KB per Second
(number) tblData.Percent : the download percent of current session
(number) tblData.ID : the user defined ID of the session
(string) tblData.Data : the user defined string data field
(string) tblData.ExData : the user defined extra string data field

это пояснение плагина, но я что то не догоняю... [/more]
Автор: Zloy_Gelud
Дата сообщения: 16.10.2013 20:14
PhpMullin -- есть же пример по использованию плагина. В глобальных функциях есть образец использования этой функции.
Автор: PhpMullin
Дата сообщения: 16.10.2013 20:30
Zloy_Gelud

Буду благодарен если ткнете носом на пример, просто уже на работе мозги летят от всего.
Автор: Zloy_Gelud
Дата сообщения: 16.10.2013 20:51
PhpMullin

Код: function Download.OnProgress(tblData)

if ( tblData ~= nil) then

if (tblData.Data == "DialogEx1") then

Progress.SetCurrentPos("Progress1", tblData.Percent);
local strinfo = string.format("Downloading .. %s / %s - Speed : %d Kb/s",String.GetFormattedSize(tblData.Loaded, FMTSIZE_AUTOMATIC, true),String.GetFormattedSize(tblData.Total, FMTSIZE_AUTOMATIC, true), tblData.CurrentSpeed);
Label.SetText("Label1", strinfo);

else

local nRow = FindRow(tblData.Session);
if(nRow > 0) then

Grid.SetCellText("Grid1", nRow, 1, tblData.CurrentSpeed.." KB/S", true);
Grid.SetCellText("Grid1", nRow, 2, tblData.TimeElapsed.." Seconds", true);
Grid.SetCellText("Grid1", nRow, 3, String.GetFormattedSize(tblData.Total, FMTSIZE_AUTOMATIC, true), true);
Grid.SetCellText("Grid1", nRow, 4, String.GetFormattedSize(tblData.Loaded, FMTSIZE_AUTOMATIC, true), true);
Grid.SetCellText("Grid1", nRow, 5, "% "..tblData.Percent, true);

end
end
end

end
Автор: PhpMullin
Дата сообщения: 16.10.2013 21:03
Огромное тебе спасибо!
Автор: kesha333
Дата сообщения: 17.10.2013 00:47
Всем привет!
Подскажите пожалуйста, существует какая то возможность перевода окна меню в полноэкранный режим без танцев с бубном? С автомасштабированием
Автор: PhpMullin
Дата сообщения: 17.10.2013 13:31
Добрый день. использую плагин Download при закачке файла закрываю приложение и оно выдает ошибку. каким образом можно завершить закачку. Использую result = Download.Stop(sessionProgress1); sessionProgress1 - это номер моей сессии... но она похоже гдето теряется.

решил проблему... на кнопке закрытия приложения был быстрый код (быстрое действие - close) убрал его и поставил вместо этого в код простое закрытие Appl.exit
Автор: wenden
Дата сообщения: 17.10.2013 14:57
Всем огромное спасибо, ветка ожила.
Zloy_Gelud,Robby низкий поклон.
Автор: collagen
Дата сообщения: 19.10.2013 10:43
PhpMullin
Вот справка по плагину Download на русском языке http://rghost.ru/49540909. Посмотрите, там довольно "настырно" рекомендуют удаление сессии загрузки действием Download.Delete(). Более того, в случае возникновения ошибки сессию нужно удалять обязательно - Download.Delete(tblData.Session).
Автор: NoeReverse
Дата сообщения: 22.10.2013 10:06
Здравствуйте, товарищи. Очень долго черпал полезную информацию с форума, находил ответы на все свои вопросы. Теперь даже самый кропотливый поиск не приводит к ответу на вопрос: как из программы в AMS передать на сервер XML-документ и получить ответ?
Программка должна отправлять сообщения SMS при помощи API одного сервиса рассылки сообщений. Для отправки сообщения на сервер требуется отправить XML-запрос и получить ответ. Аутентификация производится с использованием HTTP Basic Authentication.
Для передачи сообщений используется метод POST протокола HTTP.
Подтолкните пожалуйста!
Автор: Zloy_Gelud
Дата сообщения: 22.10.2013 10:10
NoeReverse
См. HTTP.Submit
Автор: NoeReverse
Дата сообщения: 22.10.2013 11:03
Zloy_Gelud
Вот. Вот этот ответ я ожидал. Значит, думаю "в правильном направлении". Только не могу понять, как работать с этим HTTP.Submit. Как я понимаю, в URL нужно вводить адрес скрипта на сервере, в AuthData таблицей данные авторизации, выбрать метод POST... а вот с Values проблема: не понимаю, что делать дальше. Долго-долго рылся в интернетах, искал информацию, и ничего не нашел, ей-богу.
Автор: Zloy_Gelud
Дата сообщения: 22.10.2013 11:27
NoeReverse

Цитата:
а вот с Values проблема: не понимаю, что делать дальше.

Например, адрес этой страницы:
http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=39341&start=1180
В АМС запрос выглядит так:

Код: --http://forum.ru-board.com/topic.cgi?forum=5&topic=39341&start=1180
result = HTTP.Submit("http://forum.ru-board.com/topic.cgi", {forum = '5', topic = '39341', start = '1180'}, SUBMITWEB_GET, 20, 80, nil, nil);
Dialog.Message("", result, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Автор: NoeReverse
Дата сообщения: 22.10.2013 12:21
Zloy_Gelud
Ну а если у меня есть адрес http://некийсайт.com/api/api.php и мне нужно прислать туда запрос вот в таком формате:

Код: <?xml version="1.0" encoding="utf-8"?>
<request>
<operation>SENDSMS</operation>
<message start_time="AUTO" end_time="AUTO" livetime="4" rate="120" desc="SystemMessage" source="ALFANAME">
<body>message text</body>
<recipient>1234567890</recipient>
</message>
</request>
Автор: Zloy_Gelud
Дата сообщения: 22.10.2013 12:31
NoeReverse -- ну я не гадалка. Если не хочешь писАть конкретный адрес сайта, то читай документацию, каким образом передается туда POST-запрос.
Автор: NoeReverse
Дата сообщения: 22.10.2013 12:39
Zloy_Gelud
Так в том-то и дело, что документации нет! То есть, есть документация, в которой написано, что запрос должен передаваться, а каким образом - не написано. Вот, все, что я написал выше - это краткое изложение этой самой документации, более там ничего нет. Потому ж я и стал здесь задавать вопросы. Что касается адреса сайта - могу его написать, просто думал, что он не имеет значения.
Может обращусь напрямую в поддержку этого сервиса...
В любом случае, спасибо за быстрые ответы и желание помочь!
Автор: Zloy_Gelud
Дата сообщения: 22.10.2013 12:41
NoeReverse

Цитата:
Что касается адреса сайта - могу его написать

Напиши.
Автор: NoeReverse
Дата сообщения: 22.10.2013 12:46
Zloy_Gelud
В документации указано, что это "интерфейс взаимодействия": http://sms-fly.com/api/api.php
Автор: Zloy_Gelud
Дата сообщения: 22.10.2013 12:53
NoeReverse -- у них же есть описание протокола на 5 листов..
http://sms-fly.com/api.zip
Автор: NoeReverse
Дата сообщения: 22.10.2013 12:58
Zloy_Gelud
Ну почитай, что там написано. С PHP все понятно. А вот как эти запросы посылать из AMS - не понимаю.
Автор: Zloy_Gelud
Дата сообщения: 22.10.2013 13:05
NoeReverse -- ну а что там понимать. Через курл все сделано. Для АМС тоже есть соответствующая библиотека. Если сам не справишься, то помогу (через часик-полтора).
Автор: NoeReverse
Дата сообщения: 22.10.2013 13:11
Zloy_Gelud
Не знаю, как справиться самому. Конечно, буду напрягать мозги и пополнять запас знаний, но помощи буду безмерно рад. Спасибо заранее!

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

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


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