void CWinMain::OnFormOk()
{
	TCHAR buff[150];
	TCHAR* stopString;
	double tempMax_1, tempMin_1, tempMax_2, tempMin_2, temp_eps;

	::GetDlgItemText( hFormulaForm, IDC_EDIT_MAX_PARAM_1, buff, 150 );
	tempMax_1 = wcstod( buff, &stopString );
	if( wcslen( stopString ) > 0 ) {
		::MessageBox( hFormulaForm, L"Введен некорректный параметр для максимального значения 1-ого параметра", L"Error", MB_OK | MB_ICONERROR );
		return;
	}
	::GetDlgItemText( hFormulaForm, IDC_EDIT_MAX_PARAM_2, buff, 150 );
	tempMax_2 = wcstod( buff, &stopString );
	if( wcslen( stopString ) > 0 ) {
		::MessageBox( hFormulaForm, L"Введен некорректный параметр для максимального значения 2-ого параметра", L"Error", MB_OK | MB_ICONERROR );
		return;
	}
	::GetDlgItemText( hFormulaForm, IDC_EDIT_MIN_PARAM_1, buff, 150 );
	tempMin_1 = wcstod( buff, &stopString );
	if( wcslen( stopString ) > 0 ) {
		::MessageBox( hFormulaForm, L"Введен некорректный параметр для минимального значения 1-ого параметра", L"Error", MB_OK | MB_ICONERROR );
		return;
	}
	::GetDlgItemText( hFormulaForm, IDC_EDIT_MIN_PARAM_2, buff, 150 );
	tempMin_2 = wcstod( buff, &stopString );
	if( wcslen( stopString ) > 0 ) {
		::MessageBox( hFormulaForm, L"Введен некорректный параметр для минимального значения 2-ого параметра", L"Error", MB_OK | MB_ICONERROR );
		return;
	}
	::GetDlgItemText( hFormulaForm, IDC_EDIT_EPS, buff, 150 );
	temp_eps = wcstod( buff, &stopString );
	if( wcslen( stopString ) > 0 ) {
		::MessageBox( hFormulaForm, L"Введен некорректный параметр значения эпсилон", L"Error", MB_OK | MB_ICONERROR );
		return;
	}
	if( tempMax_1 < tempMin_1 || tempMax_2 < tempMin_2 ) {
		::MessageBox( hFormulaForm, L"Максимум меньше минимума", L"Error", MB_OK | MB_ICONERROR );
		return;
	}

	maxParam[0] = tempMax_1;
	minParam[0] = tempMin_1;
	maxParam[1] = tempMax_2;
	minParam[1] = tempMin_2;
	epsilon = temp_eps;

	args.clear();

	for( int i = 0; i < static_cast<int>( vars.size() ); i++ ) {
		args[vars[i]] = std::make_pair( minParam[i], maxParam[i] );
	}
	buildPlot();
	EndDialog( hFormulaForm, 0 );
	DestroyWindow( hFormulaForm );
	hFormulaForm = 0;
}
void CWinMain::TakeFormula()
{
	formula = ParseFormula( winRedactor.CalculateStringForPlotter() );
	vars = formula.GetVariables();

	args.clear();
	for( int i = 0; i < static_cast<int>( vars.size() ); i++ ) {
		args[vars[i]] = std::make_pair( minParam[i], maxParam[i] );
	}
	buildPlot();
	::EnableMenuItem( GetMenu( handle ), ID_PARAMS, MF_ENABLED );
}
Example #3
0
void ReadKkit::undump( const vector< string >& args)
{
	if ( args[1] == "kpool" )
		buildPool( args );
	else if ( args[1] == "kreac" )
		buildReac( args );
	else if ( args[1] == "kenz" )
		buildEnz( args );
	else if ( args[1] == "text" )
		buildText( args );
	else if ( args[1] == "xplot" )
		buildPlot( args );
	else if ( args[1] == "xgraph" )
		buildGraph( args );
	else if ( args[1] == "group" )
		buildGroup( args );
	else if ( args[1] == "geometry" )
		buildGeometry( args );
	else if ( args[1] == "stim" )
		buildStim( args );
	else if ( args[1] == "xcoredraw" )
		;
	else if ( args[1] == "xtree" )
		;
	else if ( args[1] == "xtext" )
		;
	else if ( args[1] == "doqcsinfo" )
		;
	else if ( args[1] == "kchan" )
		buildChan( args );
	else if ( args[1] == "xtab" )
		buildTable( args );
	else
		cout << "ReadKkit::undump: Do not know how to build '" << args[1] <<
		"'\n";
}