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

» Indigo Rose AutoPlay Media Studio

Автор: Zloy_Gelud
Дата сообщения: 15.05.2014 15:37
Wololo

Цитата:
это реально?

Вполне.
Автор: Wololo
Дата сообщения: 15.05.2014 20:05
Zloy_Gelud
именно средствами Media Studio?
Не подскажешь, куда копать?
Как динамически создать кнопку и положить ее на форму?

Добавлено:
И сразу попутно вопрос: в каком формате должен быть xml, чтобы оттуда можно было нормально достать кириллицу? Сейчас у меня выдаются знаки вопроса. Xml в UTF8
Автор: Zloy_Gelud
Дата сообщения: 15.05.2014 20:26
Wololo

Цитата:
именно средствами Media Studio?

Ага.

Цитата:
Как динамически создать кнопку и положить ее на форму?


Код: -- Button object properties table.
tblBtnProps = {};
tblBtnProps.ButtonFile = "AutoPlay\\Buttons\\0001-windows-7.btn";
tblBtnProps.Text = "Кнопка";
tblBtnProps.FontName = "Verdana";
tblBtnProps.FontSize = 15;
tblBtnProps.FontWeight = FW_BOLD;
tblBtnProps.FontItalic = false;
tblBtnProps.FontStrikeout = false;
tblBtnProps.FontScript = 204;
tblBtnProps.FontAntiAlias = true;
tblBtnProps.FontUnderline = false;
tblBtnProps.XOffset = 0;
tblBtnProps.YOffset = 0;
tblBtnProps.LeftMargin = 0;
tblBtnProps.RightMargin = 0;
tblBtnProps.Style = BTNSTYLE_STANDARD;
tblBtnProps.ToggleState = BTN_UP;
tblBtnProps.Cursor = CURSOR_HAND;
tblBtnProps.TooltipText = "";
tblBtnProps.Y = 0;
tblBtnProps.X = 0;
tblBtnProps.Height = 54;
tblBtnProps.Width = 198;
tblBtnProps.Enabled = true;
tblBtnProps.Visible = true;
tblBtnProps.ResizeLeft = false;
tblBtnProps.ResizeRight = false;
tblBtnProps.ResizeTop = false;
tblBtnProps.ResizeBottom = false;
tblBtnProps.HighlightSound = SND_STANDARD;
tblBtnProps.HighlightSoundFile = "";
tblBtnProps.ClickSound = SND_STANDARD;
tblBtnProps.ClickSoundFile = "";
tblBtnProps.ColorNormal = Math.HexColorToNumber("FFFFFF");
tblBtnProps.ColorHighlight = Math.HexColorToNumber("FFFFFF");
tblBtnProps.ColorDown = Math.HexColorToNumber("FFFFFF");
tblBtnProps.ColorDisabled = Math.HexColorToNumber("FFFFFF");
tblBtnProps.Alignment = ALIGN_CENTER;

Page.CreateObject(OBJECT_BUTTON, "MyButton", tblBtnProps);
Автор: Wololo
Дата сообщения: 15.05.2014 20:53
Zloy_Gelud
Обожэ, это просто чудо! все работает, спасибо огромное! )
Автор: Wololo
Дата сообщения: 18.05.2014 20:16
Zloy_Gelud, не подскажете ли теперь, как на созданную программно кнопку повесить обработчик события нажатия кнопки мыши?
Автор: Zloy_Gelud
Дата сообщения: 18.05.2014 20:42
Wololo -- подскажу.

Код: -- Твой скрипт на событие On Click
local sMyScript = [[result = Dialog.Message("Notice", "Your message here.", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
result = Dialog.Message("Notice", "Your message here2.", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);]]


Page.SetObjectScript("MyButton", "On Click", sMyScript);
Автор: Octanium
Дата сообщения: 19.05.2014 00:33
Доброго времени суток.
У меня БЫЛА проблема решение которой я не смог найти, но спустя "некоторое время" удалось склеить рабочий код, может кому пригодится мало ли.
Проблема: Есть диалоговое окно, размер которого пользователь может произвольно изменять, в добавок в диалоговом окне имеются две кнопки, которые расположены в правом нижнем углу, ну и разумеется они не перемещаются в зависимости от размера диалогового окна. Нужно сделать так что-бы кнопки всегда находились в правом нижнем углу.

Собственно говоря вот как это можно осуществить:

В свойства диалога, на вкладке "On Show":

Код: -- Запоминаем изначальный (минимальный) размер диалогового окна
WinSize = DialogEx.GetSize();
-- Запоминаем изначальную позицию объектов которые в будущем будут перемещаться
xbtnok = xButton.GetPos("xButton1");
xbtncnsl = xButton.GetPos("xButton2");
Автор: Wololo
Дата сообщения: 19.05.2014 02:30
Zloy_Gelud, а получить информацию об отправителе (sender) события, т.е. о кнопке, которая была нажата, как-то можно? Подозреваю, что нет? Если так, то есть ли какое-то решение для моей задачи:
Необходимо по xml'ке построить меню (набор кнопок) и на каждую кнопку навесить определенные действия, в зависимости от того, какая кнопка была нажата.

Т.е. мне бы просто как-нибудь получить порядковый номер кнопки, например, и передать его другой форме.
Очень не хочется однообразные формы создавать вручную - там менюшки с подменюшками ((
Автор: KerberX
Дата сообщения: 19.05.2014 06:50
Переменная this хранит имя объекта, в котором выполняется действие. Вот например в событии OnClick кнопки "MyButton" запись:
Button.SetEnabled(this, true);

Будет равносильна записи:
Button.SetEnabled("MyButton", true);
Автор: Zloy_Gelud
Дата сообщения: 19.05.2014 08:03
Wololo

Цитата:
Необходимо по xml'ке построить меню (набор кнопок) и на каждую кнопку навесить определенные действия, в зависимости от того, какая кнопка была нажата.

Ну так для каждой кнопки пиши:

Код: Page.SetObjectScript("MyButton", "On Click", sMyScript);
Автор: Wololo
Дата сообщения: 19.05.2014 20:15
Zloy_Gelud, я, наверное, не очень точно описал задачу. В общем обработчик предполагался один.

KerberX, спасибо большое! То, что нужно )

И очередной вопрос:
мне необходимо как-то сохранить ссылки на кнопки. Массивов тут нет, как я понял. Вместо них - таблицы?
Автор: Zloy_Gelud
Дата сообщения: 19.05.2014 20:20
Wololo

Цитата:
Массивов тут нет, как я понял. Вместо них - таблицы?

А это не одно и тоже? В одних языках подобные типы называются массивами, в AMS/LUA - таблицами.
Автор: Wololo
Дата сообщения: 19.05.2014 20:21
точнее не ссылки на кнопки, а их имена, получается.
Автор: Zloy_Gelud
Дата сообщения: 19.05.2014 20:25
Wololo

Цитата:
точнее не ссылки на кнопки, а их имена, получается.

Например:

Код: local tButtonNames = {};
tButtonNames['Button1'] = true;
tButtonNames['Button2'] = true;
tButtonNames['Button3'] = true;
-- или
local tButtonNames = {};
tButtonNames[1] = 'Button1';
tButtonNames[2] = 'Button2';
tButtonNames[3] = 'Button3';
Автор: Wololo
Дата сообщения: 19.05.2014 21:14
Zloy_Gelud


Цитата:
А это не одно и тоже? В одних языках подобные типы называются массивами, в AMS/LUA - таблицами.

Вот хз, ни разу не сталкивался )


Код: local tButtonNames = {};
tButtonNames['Button1'] = true;
tButtonNames['Button2'] = true;
tButtonNames['Button3'] = true;
-- или
local tButtonNames = {};
tButtonNames[1] = 'Button1';
tButtonNames[2] = 'Button2';
tButtonNames[3] = 'Button3';
Автор: Zloy_Gelud
Дата сообщения: 19.05.2014 21:28

Цитата:
Это что за тип данных? не Table же?

Это table. Можете сами проверить:

Код: local tButtonNames = {};
tButtonNames['Button1'] = true;
tButtonNames['Button2'] = true;
tButtonNames['Button3'] = true;

Dialog.Message("Notice", type(tButtonNames), MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Автор: Wololo
Дата сообщения: 19.05.2014 21:54

Код: buttonsArray = {};
num = Table.Count("buttonsArray");
Автор: Zloy_Gelud
Дата сообщения: 19.05.2014 22:34
Wololo

Цитата:
Я пока не могу понять логику вообще )

http://www.indigorose.com/webhelp/ams/Scripting_Guide/Scripting_Guide.htm
Или поищи в теме русскую справку.
Автор: Wololo
Дата сообщения: 19.05.2014 23:00
Zloy_Gelud, спасибо, но я вроде со всеми трудностями уже справился )
И еще раз спасибо всем участвовавшим! )
Автор: Wololo
Дата сообщения: 22.05.2014 03:48
Это я погорячился насчет того, что все позади. Пара нюансов еще осталась:
Можно ли текст на xButton'е разместить в две строки?
Как заставить Web объект скроллиться сразу при загрузке страницы? Пробовал дать ему фокус в событии onPreload - толку нет.
Автор: Wilson78
Дата сообщения: 22.05.2014 14:09
Всем, здравствуйте! Вопрос, думаю, простой. Но сам разобраться не могу.
Есть объект Tree, примерно в три уровня. При нажатии на одном из названий открывается файл (PDF, tiff, text по разному). Додумался только до того, что стал открываться один и тот же файл на каждом названии, а нужно, чтобы на каждом свой. Помогите, please...
Автор: Zloy_Gelud
Дата сообщения: 22.05.2014 14:26
Wololo

Цитата:
Можно ли текст на xButton'е разместить в две строки?

Можно. Включаешь в настройка кнопки свойство "Enable markup" и вставляешь в качестве текста:

Код: <TextBlock>Первая строка
<LineBreak />
Вторая строка
</TextBlock>
Автор: Wilson78
Дата сообщения: 22.05.2014 14:38
Супер!!! Просто и гениально! То, что требовалось.
Спасибо. Здоровья Вам!
Автор: Wololo
Дата сообщения: 22.05.2014 22:59
Zloy_Gelud



Цитата:
Объясни подробней.


Есть страница с Web объектом. При загрузке страницы в этот объект загружается какой-то html-документ. Этот документ не умещается в размеры, отведенные ему Web объектом, поэтому появляется скроллбар. Т.к. это единственный объект со скроллбаром, то хотелось бы, чтобы при прокрутке колесика мышки загруженный html-документ скроллился. Но этого не происходит, пока не ткнешь в этот документ мышкой, т.е. вроде как пока не передашь фокус, получается? Но ручная передача фокуса в событии onPreload не помогает.
Автор: KerberX
Дата сообщения: 23.05.2014 07:01
Wololo, перемести постановку фокуса в событие OnShow. В OnPreload ещё нет объекта для передачи фокуса.
Автор: Wololo
Дата сообщения: 23.05.2014 14:11
Zloy_Gelud

Цитата:
Можно. Включаешь в настройка кнопки свойство "Enable markup" и вставляешь в качестве текста:

Ага, спасибо!

KerberX

Цитата:
перемести постановку фокуса в событие OnShow. В OnPreload ещё нет объекта для передачи фокуса.

И тоже спасибо!

Добавлено:
И, надеюсь, последний вопрос:
Как-то встроить шрифт в проект можно?
Или нужно таскать с собой ttf файл и регистрировать шрифт в системе с помощью System.RegisterFont()?
Автор: Zloy_Gelud
Дата сообщения: 23.05.2014 14:56
Wololo
-- используемые в проекте шрифты, не нуждаются в предварительной инсталяции.
Автор: dallas page
Дата сообщения: 24.05.2014 16:12
Приветствую господа. Подскажите пожалуйста, как мне, через AMS, создать текстовый документ по адресу %USERPROFILE%\\1.txt? Возможно ли вообще это. Смотрел справку, раздел Global Variables, но ничего не нашел.

Добавлено:
Все, сделал через батник.
Автор: Zloy_Gelud
Дата сообщения: 24.05.2014 21:32
dallas page

Цитата:
Все, сделал через батник.

Зачем?

Код: TextFile.WriteFromString(Shell.GetFolder(40)..'\\1.txt', "", false);
Автор: dallas page
Дата сообщения: 24.05.2014 21:44
Zloy_Gelud спасибо. Завтра посмотрю. У меня вопрос. Я периодически вижу тут скрипты, которых нет в справке. К примеру Shell.GetFolder(40) или os.date("%d.%m.%Y"). Где можно это все изучить?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

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


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