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 MapParamDlg::OnButtonAdd() { CParam *param = new CParam(), *other; param->sName = "Новый параметр"; param->m_channel_num = -1; for (param->m_num_par = MAX_PARAM + 1; param->m_num_par < 10000; param->m_num_par++) if (!m_MapParamDefault.Lookup(param->m_num_par, other)) break; NewCorrespondenceDlg dlg(param, true); if (dlg.DoModal() == IDOK) { param->Init(); m_MapParamDefault[param->m_num_par] = param; if (param->bParamActive) m_MapParam[param->m_num_par] = param; RebuildTable(); } }