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

» Autoplay Media Studio

Автор: Zloy_Gelud
Дата сообщения: 15.01.2011 19:16
Что-то я сегодня невнимателен.. надо больше отдыхать.

Elfog -- исправил. См. выше.
Автор: Zloy_Gelud
Дата сообщения: 15.01.2011 21:31
Хм, с каких пор такой код в АМС не вызывает ошибок?

Код: for i=1, 5 do
for k=1, 4 do
n = k / i;
end
Dialog.Message("", n, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Автор: lerik2703
Дата сообщения: 15.01.2011 21:54

Цитата:
Хм, с каких пор такой код в АМС не вызывает ошибок?

в 7.5 так же ошибки нет!и с чего здесь будет ошибка?а что тебя смушает, переменная n?
Автор: Zloy_Gelud
Дата сообщения: 15.01.2011 22:15
lerik2703

Цитата:
а что тебя смушает, переменная n?

Да.
Что-то мне показалось, что во время вызова Dialog.Message n должна быть равна nil.

Добавлено:
KRAUSER0993
[more=Измененный код]
Код: --[[ Описание: Функция создает вертикальные списки чекбоксов,
формируя их названия согласно названиям найденных папок
в папке Soft, находящейся рядом с исполняемым файлом.
Параметры: x - позиция по оси X
y - начальная позиция по оси Y
nMax - максимальное количество пунктов в группе]]
_MakeList = function(x, y, nMax)
local tblCheckBoxProps = {};
tblCheckBoxProps.FontName = "Verdana"; -- тип начертания
tblCheckBoxProps.FontSize = 8; -- размер шрифта
tblCheckBoxProps.FontScript = 204; -- кирил. набор символов
local nHeight = 15; -- высота чекбокса
tblCheckBoxProps.Height = nHeight;
local nWidth = 200; -- ширина чекбокса
tblCheckBoxProps.Width = nWidth;
local tDirs = Folder.Find(_SourceFolder.."\\Soft", "*", false, nil);
if tDirs then
nGroup = 1;
nItemInGroup = 0;
for i = 1, Table.Count(tDirs) do
local sDirPath = String.TrimRight(tDirs[i], "\\");
local sFoldername = String.Mid(sDirPath, (String.ReverseFind(sDirPath, "\\") + 1), -1);
tblCheckBoxProps.Text = sFoldername;
if nItemInGroup <= nMax then
if nItemInGroup == nMax then
nGroup = nGroup + 1;
nItemInGroup = 1;
else
nItemInGroup = nItemInGroup + 1;
end
nX = x + (nWidth + 4) * (nGroup - 1);
nY = y + (nItemInGroup - 1) * (nHeight + 2);
end
tblCheckBoxProps.Y = nY;
tblCheckBoxProps.X = nX;
Page.CreateObject(OBJECT_CHECKBOX, "Chk_"..i, tblCheckBoxProps);
end
end
end

_MakeList(10, 10, 5);
Автор: lerik2703
Дата сообщения: 15.01.2011 22:57
переменная n к самогу циклу ни какого отношения не имееет а лишь являетья результатом вычисления 2-х чисел(телом цикла)!составь блок-схему кода сразу будет видно!
Автор: KRAUSER0993
Дата сообщения: 16.01.2011 09:27
Zloy_Gelud

Спасибо огромное! Все работает, как надо!

Добавлено:
Zloy_Gelud

Спасибо огромное! Все работает, как надо!

Добавлено:
Упс, случайно отправил два раза из-за плохой скорости Билайна
Автор: Zloy_Gelud
Дата сообщения: 16.01.2011 11:51
KRAUSER0993
Еще раз обновил [more=скрипт]
Код: -- #FUNCTION# =======================================================================================================
-- Name............: _MakeList
-- Description ...: Создает вертикальные группы из чекбоксов.
-- Syntax..........: _MakeList(sFolderPath[, nStartX = 10[, nStartY = 10[, nMax = -1[, nGroupMax = -1]]]])
-- Parameters ...: sFolderPath - полный путь к папке, из названий подпапок которой будут форм-ся группы.
-- : nStartX - положение первой группы относительно оси X.
-- : nStartY - положение первой группы относительно оси Y.
-- : nMax - максимальное количество чекбоксов в группе. Если nMax равен -1 (по-умолчанию), то
-- будет создана одна вертикальная группа.
-- : nGroupMax - максимальное количество групп в горизонтальном ряду. Если nGroupMax равен -1 (по-умолчанию), то
-- будет создана один вертикальный ряд групп чекбоксов.
-- Return values .: Ничего не возвращает.
-- Author ...........: Zloy_Gelud (ru-board.com)
-- Modified..........: 16.01.11 - ограничение количетва групп в горизонтальном ряду.
-- Remarks ........:
-- Related ..........:
-- Link ...............:
-- =====================================================================================================

_MakeList = function(sFolderPath, nStartX, nStartY, nMax, nGroupMax)
nStartX = nStartX or 10; nStartY = nStartY or 10; nMax = nMax or -1; nGroupMax = nGroupMax or -1;
local nHeight, nWidth = 15, 200;
local tProps = {FontName = "Verdana", FontSize = 8, FontScript = 204, Height = nHeight, Width = nWidth};
local tDirs = Folder.Find(sFolderPath, "*", false, nil);
if tDirs then
local nGroup, nItemInGroup, nRow = 1, 0, 0;
for i = 1, Table.Count(tDirs) do
local sDirPath = String.TrimRight(tDirs[i], "\\");
local sFoldername = String.Mid(sDirPath, (String.ReverseFind(sDirPath, "\\") + 1), -1);
tProps.Text = sFoldername;
if nMax == -1 then
nItemInGroup = nItemInGroup + 1;
else
if nItemInGroup <= nMax then
if nItemInGroup == nMax then
nGroup = nGroup + 1;
nItemInGroup = 1;
else
nItemInGroup = nItemInGroup + 1;
end
if nGroupMax ~= -1 then
if nGroup > nGroupMax then
nRow = nRow + 1;
nGroup = 1;
nItemInGroup = 1;
end
end
end
end
nY = nStartY + (nItemInGroup - 1) * (nHeight + 2) + nRow * nMax * (nHeight + 2) + 20 * nRow;
nX = nStartX + (nWidth + 4) * (nGroup - 1);
tProps.Y = nY; tProps.X = nX;
Page.CreateObject(OBJECT_CHECKBOX, "Chk_"..i, tProps);
end
end
end

local sPath = _SourceFolder.."\\Soft";
_MakeList(sPath, 10, 10, 4, 3);
Автор: XITMAH
Дата сообщения: 18.01.2011 17:14
Нужна помощь!
Проект:

Подскажите возможно как-то сделать так, чтоб при нажатии на "Image1" открывалась картинка, которая в тот момент в этот объект загружена?
Автор: Zloy_Gelud
Дата сообщения: 19.01.2011 08:06
XITMAH

Код: local sImagePath = Image.GetFilename(this);
File.Open(sImagePath, "", SW_SHOWNORMAL);
Автор: lorents
Дата сообщения: 19.01.2011 11:56
добрый день!
Нашел один баг в проекте FileRunOnce 1.4 от tavria2.
Если запустить проект, затем запустить еще одну копию, и во время запуска второй копии быстро переключится на уже запущенную копию, то в панели задач проект не выделятся, что он на переднем плане. и сколько не кликать на проект в меню задач он не выделяется.
Автор: XITMAH
Дата сообщения: 19.01.2011 12:28
Zloy_Gelud
Большое спасибо!
Автор: 1ne2wo
Дата сообщения: 19.01.2011 12:41
Zloy_Gelud, я так понимаю вы здесь разбираетесь больше остальных Не подскажите как сделать так, чтобы при наведении указателя на кнопку, в опр. области авторана показывалась опр. картинка? Если можно максимально подробно)
Автор: Zloy_Gelud
Дата сообщения: 19.01.2011 12:53
1ne2wo

Цитата:
я так понимаю вы здесь разбираетесь больше остальных

Нет. Просто, те, кто разбирается больше меня, почему-то редко отвечают. Времени, наверное, не много.

Цитата:
Не подскажите как сделать так, чтобы при наведении указателя на кнопку, в опр. области авторана показывалась опр. картинка?

Самое простое, это: размещаете объект Image на странице проекта. Делаете его невидимым (в свойствах объекта уберите галочку Visible). Затем в On Enter кнопки поместите такой код:

Код: Image.Load("Image1", "AutoPlay\\Images\\indigorose.png");
Image.SetVisible("Image1", true);
Автор: 1ne2wo
Дата сообщения: 19.01.2011 13:00
Zloy_Gelud, благодарю, доступно и оперативно
Автор: KRAUSER0993
Дата сообщения: 19.01.2011 14:08
Помогите, пожалуйста, решить проблему!
Можно ли сделать так, чтобы при нажимании на button изменялся скрипт в изображении в "on click" на указанный скрипт в button?Например чтобы заменилась 2 строка скрипта изображения или весь скрипт.
Автор: Robby
Дата сообщения: 20.01.2011 16:17

Добавлено:

Цитата:
Как можно удалить все выбранные (выделеннные) строки в объекте Grid?

Получилось так:

Код:
tblSelected = Grid.GetNextItem("Grid1", 0, 1, GVNI_SELECTED, GVNI_BELOW);
index=1; -- начальное значение индекса
tblDelete={}; -- создаем таблицу
while tblSelected~=nil do -- пока есть выделение
tblDelete[index]=tblSelected.Row; -- добавляем номер удаляемой строки в таблицу
tblSelected = Grid.GetNextItem("Grid1", tblSelected.Row, 1, GVNI_SELECTED, GVNI_BELOW); -- переходим к следующей выделенной строке
index=index+1; -- увеличиваем индекс на 1
end
-- удаление выделенных строк
for i,nDelete in pairs(tblDelete) do
    if i==1 then
    Grid.DeleteRow("Grid1", nDelete, true);
    else
    Grid.DeleteRow("Grid1", nDelete-i+1, true);
    end
end
Автор: Zorg2010
Дата сообщения: 20.01.2011 19:13
Народ, всем доброго времени суток!
Такой вопрос: как зделать авторан где будет возможность слушать мр3-файли так что б вибрать нужний файл нажать на плей, а следующый файл начинал играть после окончания запушеного???? Жду ответа или ссилки где про это можно почитать.
Автор: lorents
Дата сообщения: 20.01.2011 21:10
Добрый день!
Сейчас изучал DragDrop.dll, хотел спросить не знаете он требует .NET Framework? Если да то какой версии?

И еще а есть другой способ реализовать Drag & Drop?
Автор: Zloy_Gelud
Дата сообщения: 20.01.2011 22:08
lorents

Цитата:
Сейчас изучал DragDrop.dll, хотел спросить не знаете он требует .NET Framework?

Необходим 2.0 или выше вроде. На оф. сайте должно быть написано.

Цитата:
И еще а есть другой способ реализовать Drag & Drop?

Есть С помощью плагина Memory например.

Добавлено:
Robby

Цитата:
но может есть более красивое решение?

Уж не знаю насколько красиво, но тоже работает.

Код: Grid.GetSelectedRows = function(sObject)
local tSel = {};
local nRowsCount = Grid.GetRowCount(sObject);
local nColumnCount = Grid.GetColumnCount(sObject);
if nRowsCount > 0 and nColumnCount > 0 then
for i = 0, nRowsCount - 1 do
for k = 0, nColumnCount - 1 do
if Grid.GetCellState(sObject, i, k).Selected then
tSel[#tSel + 1] = i;
break;
end
end
end
end
return (#tSel > 0) and tSel or nil;
end

local tSelected = Grid.GetSelectedRows("Grid1");
if tSelected then
for i = 1, #tSelected do
Grid.DeleteRow("Grid1", tSelected[i] - (i - 1), true);
end
end
Автор: lorents
Дата сообщения: 20.01.2011 22:21
Zloy_Gelud

Цитата:
Необходим 2.0 или выше вроде. На оф. сайте должно быть написано.

точно, я и не подумал об этом. Точно версия 2.0 и выше нужна.
Автор: Zloy_Gelud
Дата сообщения: 20.01.2011 22:25
KRAUSER0993

Цитата:
Можно ли сделать так, чтобы при нажимании на button изменялся скрипт в изображении в "on click" на указанный скрипт в button?

Можно.

Код: local sScript = [[Dialog.Message("Notice", "Новый код.");]] -- новый код
Page.SetObjectScript("Image1", "On Click", sScript); -- обновляем код
Автор: lorents
Дата сообщения: 20.01.2011 23:21
Добрый вечер еще раз!
Сейчас делаю свой проект, и столкнулся с несколькими проблемами, прошу помочь.
1. удалите из проекта файл "AutoPlay\Plugins\DragDrop.dll" и запустите две копии. по идеи стоит запрет на запуск второй копии, но из-за диалогового окна в самом начале это не происходит.
2. удалите из проекта файл "AutoPlay\Plugins\DragDrop.dll" и запустите одну копию, вовремя запуска, быстро переключитесь на любое окно которое развернуто на все окно. У меня ListIcon создается в диалоговом окне, а должен создаваться на странице.
Автор: Zloy_Gelud
Дата сообщения: 21.01.2011 08:01
lorents -- тебе бы бета-тестером работать.

Добавлено:
lorents
Навскидку, что могло бы помочь:
1) Перед запуском проекта проверять наличие файла DragDrop.dll.
2) Похоже, что ListIcon создается в том окне, которое в данный момент активно и имеет в себе дескриптор LisbBox'a. Если быстро переключаться, то активным становиться диалоговое окно, ну и, соот-но, тот результат.. Это все имхо конечно.
Автор: lorents
Дата сообщения: 21.01.2011 09:06
Zloy_Gelud
все проблема в диалоговом окне, тогда вопрос как мне от него избавиться, но при этом оставить функцию проверки всех необходимых файлов?
Автор: KRAUSER0993
Дата сообщения: 21.01.2011 10:15
Zloy_Gelud

Не получается При нажимании на изображение вылазиет сообщение с моим написанным кодом.
Автор: Zloy_Gelud
Дата сообщения: 21.01.2011 10:23
KRAUSER0993
Напиши, какой код ты используешь.
Автор: KRAUSER0993
Дата сообщения: 21.01.2011 11:43
Это не имеет значения, потому что я вводил разные скрипты.На любых скриптах вылазиет сообщение
Автор: Zloy_Gelud
Дата сообщения: 21.01.2011 11:48
KRAUSER0993
Это имеет значение, т.к. ты вводишь не то, что надо.

Добавлено:
В коде:

Код: local sScript = [[Dialog.Message("Notice", "Новый код.");]] -- новый код
Page.SetObjectScript("Image1", "On Click", sScript); -- обновляем код
Автор: KRAUSER0993
Дата сообщения: 21.01.2011 13:07
Спасибо, что помог! Я оказывается вставлял скрипт не туда куда надо, а туда где написанно "Новый код."
Надо мне быть внимательнее
Автор: lerik2703
Дата сообщения: 21.01.2011 20:40
lorents

Цитата:
удалите из проекта файл "AutoPlay\Plugins\DragDrop.dll" и запустите две копии. по идеи стоит запрет на запуск второй копии, но из-за диалогового окна в самом начале это не происходит.

если в начале проверки файлов добавить if bFirstStart then проблемма пропадает но закрывая диалог просто окно активизируеться!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140

Предыдущая тема: Media Player Classic - Home Cinema (MPC-HC)


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