void MapParamDlg::ChooseChannel(int item) { MutexWrap params_access(m_params_map_mutex); int param_num = m_table_list.GetItemData(item); CParam* param = NULL; if (!m_MapParamDefault.Lookup(param_num, param)) CRUSH("Параметр отсутствует"); CHECK(param != NULL); NewCorrespondenceDlg dlg(param, false); if (dlg.DoModal() == IDCANCEL) return; if (param->bParamActive) { m_MapParam[param_num] = param; param->Init(); } else { param->StartTimeOut(); m_MapParam.RemoveKey(param_num); } SetupLine(item, param); }
void StartTimeOut(CParamMap& map_param) { CParam* param; int num; POSITION pos = map_param.GetStartPosition(); while (pos != NULL) { map_param.GetNextAssoc(pos, num, param); if (param == NULL) continue; if (param->bParamActive) { param->StartTimeOut(); param->m_prev_calc_status = FORMULA_CALC_STATUS_TIMEOUT; } } }