пятница, 14 декабря 2012 г.

Работа с командной функцией.

Работа с командной функцией Command(vID,vMSG).
Здесь мы строим выбранный в диалоге объект.

  1. Приостановливаем все процессы перед исполнением StopAllThreads().
  2. Начинаем опрашивать ячейки диалога case 1, у нас одна ячейки и она срабатывает от нажатия кнопки ОК.
  3. Получить значение из переменной комбобокса, сравнить с 1, так, как он первый (вообще будет до ста объектов).
  4. Войдём в активный документ GetActiveDocument().
  5. Вызовем функцию установки документа UstDoc(vDoc), позже будет о ней речь.
  6. Вызовем функцию формулы первого объекта Form1(vDoc).
  7. Вызовем функцию главного рисователя полигонов по x,y,z координатам RisPol(vDoc).
  8. Вызовем функцию дополнительного рисователя полигонов по x,y,z (кое-где он не нужен) RisPolDop(vDoc).
  9. Вызовем функцию начала рисования fPara(vDoc).
  10. Вызовем функцию изменения позиции объекта (позиция по Y,Z, и поворот на 90 градусов по Z) PosObj(vDoc).


//***************************

MyDialog::Command(vID,vMSG)
{
      var vDoc;//Переменная vDoc
      StopAllThreads();//Приостановить все процессы перед исполнением
      switch (vID)//Опрос ячеек диалога,
{
       case 1 : // нажатие кнопки OK!
{
       var x0 = GetItem(2001);//Получить значение подобъекта из id=2001 (комбобокс) - 1 в нашем случае, вообще будет до 100
       if (x0==1)//Сравнить это значение с 1 (подобъекта №1)
{
                         vDoc = GetActiveDocument();
                         if (!vDoc) return FALSE;
                         UstDoc(vDoc); //Вызов функции установки документа
                         Form1(vDoc);//Вызов функции формулы
                         RisPol(vDoc); //Вызов функции главного рисователя полигонов по x,y,z, координатам.
                         RisPolDop(vDoc); //Вызов функции дополнительного рисователя полигонов по x,y,z (кое-где он не нужен)
                         fPara(vDoc);//Функция начала рисования
                         paraRX=2;
                         PosObj(vDoc);//Функция изменения позиции объекта (позиция по Y,Z, и поворот на 90 градусов по Z)
                         return TRUE;
         break;    //Прервать
}

}
           return TRUE;
}

//****************************

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

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