Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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();
	}
}