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

» Autoplay Media Studio

Автор: collagen
Дата сообщения: 16.07.2012 04:31
bigbrain
Попробуйте действие Grid.GetFocusCell. Это Справка - Действия - Grid - Grid.GetFocusCell. На выходе должна быть таблица с номером ряда и колонки, начинающихся с нуля.
Автор: Robby
Дата сообщения: 16.07.2012 07:07
bigbrain
Если тебе надо чтобы выделялась вся строка при выборе ячейки то нужно включить режим List Mode

Код: Grid.SetListMode("Grid1", true);
Автор: bigbrain
Дата сообщения: 16.07.2012 15:16

Цитата:
Попробуйте действие Grid.GetFocusCell. Это Справка - Действия - Grid - Grid.GetFocusCell. На выходе должна быть таблица с номером ряда и колонки, начинающихся с нуля.

Спасибо, я так и делаю, когда дело касается ячейки.
Когда пользователь щелкает по ячейке в Fixed column, то выделяется вся строка и Grid.GetFocusCell показывает -1; -1 на любой фиксированной ячейке.
С удалением строки действительно не так просто. Сделал первый попавшийся рабочий вариант. On selection changed в Grid получаю координаты ячейки и вывожу в Label'ы отдельно строку и столбец. А при нажатии кнопки удалить считываю значения из Label'ов. С переменными у вопрос как-то не прокатил.
Автор: Zloy_Gelud
Дата сообщения: 16.07.2012 16:04
bigbrain

Цитата:
Подскажите, пожалуйста, как в Grid получить номер строки, которую выделил пользователь.


Код: Grid.GetRowsSelected = function (sObject)
local nRow = Grid.GetRowCount(sObject);
local nColumn = Grid.GetColumnCount(sObject);
local tRowsSelected = {};
local _b
for i = 1, nRow - 1 do
_b = true;
for k = 1, nColumn - 1 do
if not Grid.IsCellSelected(sObject, i, k) then
_b = false;
break;
end
end
if _b then
tRowsSelected[#tRowsSelected + 1] = i;
end
end
return (#tRowsSelected > 0) and tRowsSelected or nil;
end

local tRowsSel = Grid.GetRowsSelected("Grid1");
if not tRowsSel then
Dialog.Message("", "Нет выделенных строк.", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
local nBut = Dialog.Message("", "Выделена(-ы) строка(-и): "..Table.Concat(tRowsSel, ", ", 1, TABLE_ALL).."\r\n\r\n Вы хотите их удалить?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1);
if nBut == 6 then
for i = #tRowsSel, 1, -1 do
Grid.DeleteRow("Grid1", tRowsSel[i], true);
end
end
end
Автор: bigbrain
Дата сообщения: 16.07.2012 17:21
Up. ListMode это чудо просто )))
Там выделяется вся строка когда ячейку щелкаешь, главное чтобы юзер понимал, что удаляет строку.
А что Fixed column показывает -1; -1, ну и хрен с ним. Нечего все что попало нажимать )))
Автор: SuperDimon007
Дата сообщения: 16.07.2012 18:40
Как можно зная url вытащить html код? Я слышал есть ещё проблема с кириллицей, и вместо русского текста каракули.
Автор: bigbrain
Дата сообщения: 16.07.2012 20:16
Большое спасибо, Zloy_Gelud! Подскажи, пожалуйста, что обозначает решетка в коде? Например, тут #tRowsSelected
Автор: Zloy_Gelud
Дата сообщения: 16.07.2012 20:43
SuperDimon007

Код: local sHTML = HTTP.Submit("http://ya.ru", {}, SUBMITWEB_POST, 20, 80, nil, nil);
Dialog.Message("Notice", sHTML, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Автор: NEXTsuper
Дата сообщения: 16.07.2012 22:10
Подскажите плиз как в браузере по умолчанию открыть страницу после https запроса?
Автор: SuperDimon007
Дата сообщения: 17.07.2012 09:25
Zloy_Gelud
Как я и говорил вместо русского текста - непонятные символы. Можно как-нибудь исправить?
Автор: Zloy_Gelud
Дата сообщения: 17.07.2012 12:22
SuperDimon007

А так?

Код: oHHTP = luacom.CreateObject("winhttp.winhttprequest.5.1");
if oHHTP then
oHHTP:Open("GET", "http://www.ya.ru", 0);
oHHTP:send();
sHTMLSource = oHHTP.Responsetext;
Dialog.Message("Notice", sHTMLSource, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Автор: SuperDimon007
Дата сообщения: 17.07.2012 13:19
Zloy_Gelud
Спасибо. Теперь всё отлично работает
Автор: Daem0n7
Дата сообщения: 17.07.2012 15:01
Уважаемый, Zloy_Gelud ! У меня к вам вопрос. Я делаю лаунчер на автоплей меню, прочесав форум я заметил что вы помогаете всем на руборде, и некоторые ваши ответы очень помогли. Так вот, возможно вопрос звучал уже, но подскажите как сделать чтобы ланчер автоматически читал текстовый документ и запоминал данные в нем и отображал. Допустим в файле написано разрешение 1024х268, чтоб ланчер и отображал в листбоксе это разрешение. Также и с чекбоксами. как чтобы чекбокс видел в текстовом файле параметр false и при нажатии ставил true, а при убирании галочки снова ставил на false.

вот пример http://i008.radikal.ru/1207/50/d0159b3da92f.jpg

Ответьте пожалуйста или напишите ссылку где можно почитать про это. заранее спасибо!)
Автор: SuperDimon007
Дата сообщения: 17.07.2012 15:16
Daem0n7
Создай ini файл, и посмотри действия с ini файлами, а там думаю разберёшься.
Автор: Daem0n7
Дата сообщения: 17.07.2012 16:22
Вроде бы нашел ответ на стр. 83,84. Сделал вроде все как надо, но выдает ошибку.
Помогите все таки...)
Автор: SuperDimon007
Дата сообщения: 17.07.2012 17:56
Daem0n7
Опиши подробно. Как я понял лаунчер считывает, например, все значения экрана и записывает их в combobox?
Если на скорую руку то держи

Код: t=0
size = INIFile.GetValue("C:\\file.ini", "main", "size");
while (String.Find(size, ", ", 1, false) ~=-1) do
t=t+1;
result = String.Length(size);
size = String.Right(size, result-String.Find(size, ", ", 1, false));
end
size = INIFile.GetValue("C:\\file.ini", "main", "size");
for count = t, 1, -1 do
result = ComboBox.AddItem("ComboBox1", String.Left(size, String.Find(size, ", ", 1, false)-1), String.Left(size, String.Find(size, ", ", 1, false)-1));
result = String.Length(size);
size = String.Right(size, result-String.Find(size, ", ", 1, false)-1);
if count==1 then
ComboBox.AddItem("ComboBox1", size, size);
end
end
Автор: Daem0n7
Дата сообщения: 17.07.2012 18:09
SuperDimon007, есть аська или скайп? напиши в лс)))

.... не совсем то(

Смотри,

http://i063.radikal.ru/1207/97/5dfd02bf3078.jpg

при этом эти данные должны сохранятся (через кнопку) и считываться из ини файла + отображаться при последуйщем запуске авторана
Автор: SuperDimon007
Дата сообщения: 17.07.2012 18:32
Daem0n7
а в чём проблема аналог сделать?

Код: size = INIFile.GetValue("C:\\File.ini", "main", "size"); --Разрешение
buf = INIFile.GetValue("C:\\File.ini", "main", "buffer"); --Буфер
if INIFile.GetValue("C:\\File.ini", "main", "fps")==true then
CheckBox.SetChecked("CheckBox1", true); else
CheckBox.SetChecked("CheckBox1", false); end; --30 fps
--А теперь записываем в файл ini допустим галочку 30 fps
INIFile.SetValue("C:\\file.ini", "Main", "fps", CheckBox.GetChecked("object"));
Автор: Daem0n7
Дата сообщения: 17.07.2012 18:49
Что то не то(((

вот может проще сам проект посмотреть - http://rghost.ru/39261014
Автор: SuperDimon007
Дата сообщения: 17.07.2012 19:06
Daem0n7
в событие кнопки "применить" пиши

Код: select = ComboBox.GetSelected("ComboBox1"); --определяем что выбрано в разрешении экрана
INIFile.SetValue(%Путь к файлу%, "main", "size", ComboBox.GetItemText("ComboBox1", select)); --записываем
select = ComboBox.GetSelected("ComboBox2"); --определяем что выбрано в буффере
INIFile.SetValue(%Путь к файлу%, "main", "biffer", ComboBox.GetItemText("ComboBox2", select)); --записываем
INIFile.SetValue(%Путь к файлу%, "main", "window", CheckBox.GetChecked("CheckBox1")); --записываем true или false относящиеся к оконному режиму
INIFile.SetValue(%Путь к файлу%, "main", "fps", CheckBox.GetChecked("CheckBox2"));--записываем true или false относящиеся к 30 fps
Автор: Daem0n7
Дата сообщения: 17.07.2012 19:20
ошибку на кнопке выдает (линия 5)....
(з.ы. ини файл должон быть игровой, т.е. настройки параметров для игры)
Автор: Robby
Дата сообщения: 17.07.2012 19:26
SuperDimon007
Так нельзя

Код: INIFile.SetValue(%Путь к файлу%, "main", "window", CheckBox.GetChecked("CheckBox1")); --записываем true или false относящиеся к оконному режиму
INIFile.SetValue(%Путь к файлу%, "main", "fps", CheckBox.GetChecked("CheckBox2"));--записываем true или false относящиеся к 30 fps
Автор: Daem0n7
Дата сообщения: 17.07.2012 19:42
У кого нибудь есть пример Ланчера с использванием чекбокса, комбобокса? (+чтение и запись в ини)
Автор: Robby
Дата сообщения: 17.07.2012 20:01
Daem0n7
Чтение/запись в ini файл вставь код в Глобальные функции (меню Project->Global Functions)

Код: -- функция сохранения/чтения насторек из ini файла
-- первый параметр strPathIni - (строка) путь к файлу ini;
-- второй параметр (сторока) strAction действие значения "load" или "save"
IniFiles = function (strPathIni, strAction)
local tblObjectType={};
tblObjectType[7]={Name="OBJECT_INPUT", Save = function (object) return Input.GetText(object); end};
tblObjectType[10]={Name="OBJECT_COMBOBOX", Save = function (object) return ComboBox.GetSelected(object); end};
tblObjectType[13]={Name="OBJECT_RADIOBUTTON", Save = function (object) return RadioButton.GetChecked(object); end};
tblObjectType[15]={Name="OBJECT_CHECKBOX", Save = function (object) return CheckBox.GetChecked(object); end}; -- типы объектов значения которых нужно сохранять/считывать из ini
local tBool={["true"]=true, ["false"]=false}
if strAction=="load" then
if File.DoesExist(strPathIni) then
local tblSection_names = INIFile.GetSectionNames(strPathIni);
if (tblSection_names) then
for index_section, section in pairs(tblSection_names) do
local tblAllValue_names = INIFile.GetValueNames(strPathIni, section);
if (tblAllValue_names) then
for index_value, value in pairs(tblAllValue_names) do
if section == "OBJECT_INPUT" then
Input.SetText(value, INIFile.GetValue(strPathIni, section, value));
elseif section == "OBJECT_COMBOBOX" then
ComboBox.SetSelected(value, INIFile.GetValue(strPathIni, section, value));
elseif section == "OBJECT_RADIOBUTTON" then
RadioButton.SetChecked(value, tBool[INIFile.GetValue(strPathIni, section, value)]);
elseif section == "OBJECT_CHECKBOX" then
CheckBox.SetChecked(value, tBool[INIFile.GetValue(strPathIni, section, value)]);
end
end
end
end
end
end
elseif strAction=="save" then
local object_names = Page.EnumerateObjects();
error = Application.GetLastError();
if (error ~= 0) then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
else
if (object_names == nil) then
Dialog.Message("Notice", "Нет объектов на текущей странице!", MB_OK, MB_ICONEXCLAMATION);
else
for index, object in pairs(object_names) do
local typeObj = Page.GetObjectType(object);
if (tblObjectType[typeObj]) then
local strSection = tblObjectType[typeObj].Name;
local strValue=object;
local strData = tblObjectType[typeObj].Save(object);
INIFile.SetValue(strPathIni, strSection, strValue, tostring(strData));
end
end
end
end
end
end
Автор: Daem0n7
Дата сообщения: 17.07.2012 21:57
Спасибо, с этим вроде разобрался. Теперь обьясните как работать с чекбоксами?
надо чтобы первый чекбокс (если стоит галочка) ставил "труе" параметру "windowedmode" - обязательно допустим в 10 строке (и фалсе если галочка снята)
и второй тоже самое только параметру "use30hz " - только в 22 строке.

( и можно ли как то убрать чтобы в ини файле в конце не добавлялись
[OBJECT_COMBOBOX]
ComboBox1=2
ComboBox2=6
[OBJECT_CHECKBOX]
CheckBox1=false
CheckBox2=false ........................... )
Автор: Robby
Дата сообщения: 18.07.2012 10:42
Daem0n7

Назови CheckBox не CheckBox1 и CheckBox2, а windowedmode и use30hz, либо, если тебе надо чтобы ini файл был такой как в выложенном тобой проекте, то функцию нужно переделывать по конкретные твои нужды.
Автор: KerberX
Дата сообщения: 18.07.2012 14:49
Люди, помогите! Имеется таблица с путям к файлам. Например:
tFiles = {}
tFiles[1] = "C:\\File1.txt"
tFiles[2] = "C:\\Folder1\\File2.txt"
tFiles[3] = "C:\\Folder2\\Folder3\\File3.txt"

Таблица создаётся автоматически, считывается из файла. Я хочу файлы из этой таблицы засунуть в ZIP архив. Пишу эту таблицу в функцию Zip.Add. Но архив создаётся со всеми файлами в его корне, а не в подпапках. Если поставить параметр Recurse, то получается только структура пустых папок, включение или отключение IncludeFolderNames не меняет результат. Как сделать так, чтобы файлы были в подпапках, а не лежали просто так?
Автор: Robby
Дата сообщения: 18.07.2012 16:35
Daem0n7
тебе так надо? http://rghost.ru/39277052

Добавлено:
KerberX
IncludeFolderNames для того и служит чтобы при архивировании сохранялась структура папок но при условии что используются маски файлов. Смотри примечание к этому параметру Note: If no wildcards are used, no relative folder names will be preserved.

Используй для создания архива внешний архиватор либо добавляй файлы через использование масок

Код: Zip.Add("MyInfo.zip", {_SourceFolder.."\\AutoPlay\\Docs\\*.*"}, true, "", 5, nil, true);
Автор: KerberX
Дата сообщения: 18.07.2012 17:37
Читал я все эти примечания. Я просто хочу узнать, есть ли способ создать структуру не используя маски. И не могу я маски использовать, нужно добавлять строго определённые файлы, из списка.
Автор: Robby
Дата сообщения: 18.07.2012 17:43
KerberX
Тогда ответ - нельзя. Используй внешний архиватор, там будет все можно.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140

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


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