Четыре шага работы с Popup Trigger Первое: описание в .rcp. Обратить внимание, что LIST скрыт! LABEL "Layout" AUTOID AT (5 PREVBOTTOM) FONT 1 POPUPTRIGGER "G700" ID MainLayoutPop AT (PREVRIGHT + 4 PREVTOP 40 12) LIST "Belkin G700" "Belkin G700/Swap" ID MainLayoutList AT (PREVLEFT + 13 PREVTOP + 5 AUTO 56) NONUSABLE POPUPLIST ID MainLayoutPop MainLayoutList Второе: FormOpen выставляет текущее значение: static void PrvSetPopup(Int16 sel, UInt16 listID, UInt16 popID){ ListType *listP = GetObjectPtrEx(listID, NULL); ControlType *ctlP = GetObjectPtrEx(popID, NULL); LstSetSelection(listP, sel); CtlSetLabel(ctlP, LstGetSelectionText(listP, sel)); } //... PrvSetPopup(prefs.curMap, MainLayoutList, MainLayoutPop); //.... Третье: обработка эвентов. Обратить внимание, что возврашается false BEGIN_POP_MAP() HANDLE_POP_EVENT(MainLayoutPop, (UpdatePrefs(), false)); END_POP_MAP() Четвертое: чтение текущего значения prefs.curMap = LstGetSelection(GetObjectPtrEx(MainLayoutList, NULL)); И все!