Работа со значениями Комбобокса в Диалоговом меню: (от звёздочек до звёздочек)
//****************************************
//This Script was made by senior 20.07.11
//Установка переменных
var x0;
var y0;
var z0;
var x1 = "Red";
var y1;
var z1;
const var txtx1="Red"; // X-1
const var txtx2="Blue"; // X-2
const var txtx3="Yellow"; // X-3
const var txtx4="Green"; // X-4
const var txtx5="Black"; // X-5
class MyDialog : GeModalDialog //модальный GeModalDialog
////Это означает, что до тех пор, пока открыто диалоговое окно, остальная часть программы должна ждать,
//пока пользователь не закроет окно. Так что этот тип диалога соответствует 90% всех плагинов.
//Кроме того, он обрабатывает кнопки ОК и Cancel
{
public:
MyDialog();//Декларация конструктора
CreateLayout();//Объявление метода создания диалога
Command(id, msg);//Получение значений из полей диалога
}
MyDialog::MyDialog() {super();}//Конструктор для вызова родительского класса
MyDialog::CreateLayout()//Создать диалог(определить расположение объектов диалога)
{
SetTitle("ALL_Menu");//Имя диалога
AddEditText(104, 0, 350, 0);//Окно для получения и введения текста, id=104, центр, ширина=350, высота в одну букву.
AddGroupBeginV(1001, BFH_SCALEFIT,1,"group",0);//Начало группы V-вертикальная
AddSeparatorH(0);//Разделитель
AddComboBox(2001, BFH_SCALEFIT|BFV_CENTER, 64, 0);//КомбоБокс
AddItem(2001, 1, "Set-1");//Подобъект №1
AddItem(2001, 2, "Set-2");//Подобъект №2
AddItem(2001, 3, "Set-3");//Подобъект №3
AddItem(2001, 4, "Set-4");//Подобъект №4
AddItem(2001, 5, "Set-5");//Подобъект №5
SetItem(2001, 1);//Установить в комбобоксе по умолчанию Подобъект №1
AddSeparatorH(0);//Разделитель
AddGroupEnd();//Конец группы
AddGroupBeginV(1004, BFH_SCALEFIT,1,"group",0);//Начало группы V-вертикальная
AddButton (3000,BFH_CENTER,200,0,"Set_in_ComboBox");//Кнопка "Set_in_ComboBox"
AddSeparatorH(0);//Разделитель
AddDlgGroup(DR_DLGGROUP_OK | DR_DLGGROUP_CANCEL);//Кнопки OK и Cancel
AddGroupEnd();//Конец группы
}
MyDialog::Command(id, msg)//Отслеживает нажатие кнопок и выдачу сообщений,
//срабатывает от каждого события, то есть каждый раз, как нажимается любая кнопка, с выдачей id каждого события
{
switch(id)//Взять id нажатия
{
case 3000: // Если это (id=3000)="Set_in_ComboBox", то...
{
x0 = GetItem(2001);//Получить значение подобъекта из id=2001 (комбобокс) - 1, 2, 3, или 4
if (x0==1)//Сравнить это значение с 1 (подобъекта №1)
{
x1=txtx1;// то x1 = "Red"
}
if (x0==2)//Сравнить это значение с 2 (подобъекта №2)
{
x1=txtx2;// то x1 = "Blue"
}
if (x0==3)//Сравнить это значение с 3 (подобъекта №3)
{
x1=txtx3;// то x1 = "Yellow"
}
if (x0==4)//Сравнить это значение с 4 (подобъекта №4)
{
x1=txtx4;// то x1 = "Green"
}
if (x0==5)//Сравнить это значение с 5 (подобъекта №5)
{
x1=txtx5;// то x1 = "Black"
}
println("Set = ", x1);//Напечатать в консоли значение комбобокса
SetString(104, x1);//Вставить текст в id=104 (текстовое окошко)
var message = stradd("Set = ",tostring(x1));
TextDialog(message,DLG_OK);//Напечатать значение комбобокса во всплывающем окошке
return TRUE;
break;//Прервать
}
case 1: //Если это (id=1)=OK, то...
{
println("OK!");//Напечатать в консоли
TextDialog("OK!",DLG_OK);//Напечатать в отдельном окошке
return TRUE;
break;//Прервать
}
case 2: //Если это (id=2)=Cancel, то...
{
println("CANCEL");//Напечатать в консоли
TextDialog("CANCEL",DLG_OK);//Напечатать в отдельном окошке
return FALSE;
break;//Прервать
}
}
}
main(doc, op)//Главная функция, с которой начинается работа
{
var d = new(MyDialog);//Запуск функции модального диалога GeModalDialog
d->Open(1650, 700);//После того, как все кнопки определены, запустить диолог в позиции 1650 на 700
var result = d->GetResult(); // GetResult показывает, что нажато OK или Cancel, (OK-TRUE, CANCEL-FALSE)
if(result==FALSE) return; //Выйти, если нажата CANCEL
TextDialog("END",DLG_OK); //Продолжить, если нажата OK
}
//****************************************
Комментариев нет:
Отправить комментарий