среда, 20 июля 2011 г.

Работа со значениями Комбобокса в Диалоговом меню.

Работа со значениями Комбобокса в Диалоговом меню: (от звёздочек до звёздочек)


//****************************************
//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
 }
//****************************************

Комментариев нет:

Отправить комментарий