Привязать к элементу управления функцию - обработчик события.

ts_dialogcontrol(int iButtonDescr, "eventreaction", string eventfunctionname);

Здесь:

eventfunctionname - имя функции, которая обрабатывает событие.

Пример. Чтобы обработать реакцию на нажатие кнопки создайте функцию:

int iDialogDescr, iButtonZoom;

int main()

{

...// создать окно диалога

    int x, y, w, h;

    x=1,y=1, w=200; h = 200;

    object("create","ts_dialog",iDialogDescr);

    ts_dialog(iDialogDescr, "init_dialog","palette",x,y,w,h);

    ts_dialog(iDialogDescr, "eventreaction", "Event_PanelCloseRequested");

    ts_dialog(iDialogDescr, "SetTitle","Расчет ведомости объемов работ");

    bool bres;

   // создать  элемент управления

   x=1; y=1; w=50; h=20;

   object("create","ts_dialogcontrol",iButtonZoom,"iButtonZoom");

    ts_dialogcontrol(iButtonZoom, "init_control", "button",iDialogDescr, x, y, w, h);

    ts_dialogcontrol(iButtonZoom, "eventreaction", "Event_ButtonClicked");

    ts_dialogcontrol(iButtonZoom, "settext", "Показать");

...

    ts_dialog(iDialogDescr, "invoke",bres);

    cout << bres;

}


int Event_ButtonClicked(int iDescr, string sDescr)

{

   if(sDescr == "ButtonCancel")

   {

      ts_dialog(iDialogDescr,"PostCloseRequest","cancel"); // закрыть диалог с результатом отмены

   }

   else if(sDescr == "ButtonOK")

   {

      ts_dialog(iDialogDescr,"PostCloseRequest","ok"); // закрыть диалог с результатом "Ok"

   }

   else if(sDescr == "ButtonCalc")

   {

          Calc();

   }

   else if(sDescr == "ButtonZoom")

   {

          ZoomElementInProject();

   }

}

Теперь по нажатию кнопки будет выполняться эта функция.

В момент ее выполнения iDescr - числовое значение дескриптора кнопки, которая вызвала событие, а sDescr - ее имя объекта (не путать с текстом кнопки). Можно различать какая кнопка нажата по конструкции

if(iDescr == iDescrZoom) 

{

   //

}

Либо 

if(sDescr == "iButtonZoom")

{

   //

}

Бывает удобно и по числу и по имени. Например можно задать одинаковые имена группе кнопок, выполнять общие действия, а затем различать их по числовому дескриптору.

Ниже дана таблица имен функций - обработчиков событий для каждого типа элементов управления диалогов.


Имя функции - обработчика события

Элементы, к которым можно применять

Примечание

Event_TreeViewContextMenuRequested

MultiselTreeView, SingleSelTreeView

Запрос вызова контекстного меню

Event_TreeViewItemCollapsed

Свертывание дерева

Event_TreeViewItemDoubleClicked

Двойной щелчок

Event_TreeViewItemExpanded

Раскрытие элемента

Event_TreeViewLabelEditFinished

Завершение редактирования текста элемента

Event_TreeViewLabelEditStarted

Начало редактирования текста элемента

Event_TreeViewSelectionChanged

Смена выбранного элемента дерева

Event_TreeViewStateIconClicked

Щелчок на иконке состояния




Event_ListViewContextMenuRequested

MultiselListView, SingleselListView

Запрос контекстного меню

Event_ListViewDoubleClicked

Двойной щелчок

Event_ListViewItemUpdate

Обновление позиции

Event_ListViewSelectionChanged

Изменение текущей позиции




Event_RealEditChanged

RealEdit

Изменение числа в поле редактирования




Event_TextEditChanged

TextEdit

Изменение текста в поле редактирования




Event_ItemFocusGained

Все фокусируемые элементы

Элемент получил фокус

Event_ItemFocusLost

Все фокусируемые элементы

Элемент потерял фокус




Event_ImageClicked

IconItem

Щелчок на картинке




Event_ListBoxClicked

MultiselListBox, SingleselListBox

Щелчок мыши

Event_ListBoxDoubleClicked

Двойной щелчок

Event_ListBoxSelectionChanged

Изменение текущего выбора




Event_PopUpChanged

PopUp

Изменение значения в элементе PopUp




Event_StaticTextClicked

LeftText, CenterText, RightText

Щелчок на тексте

Event_StaticTextDoubleClicked

Двойной щелчок




Event_CheckItemChanged

CheckBox, IconCheckBox, IconPushCheck, PushCheck

Смена выбранного элемента

Event_CheckItemDoubleClicked

Двойной щелчок




Event_ButtonClicked

Button, IconButton

Нажатие кнопки




Event_NormalTabChanged

NormalTab

Изменение текущего элемента в NormalTab (переход на другую панель)

Event_NormalTabClicked

NormalTab

Щелчек мыши на поле элемента NormalTab