bool __fastcall TSpreadSheetRLModifyForm::Execute(TcxSSModifyType AModifySheet) { AnsiString ACaptions[8]; ACaptions[2] = "Shift cells left"; ACaptions[3] = "Shift cells top"; ACaptions[4] = "Entire row"; ACaptions[5] = "Entire column"; ACaptions[6] = "&Ok"; ACaptions[7] = "&Cancel"; if (AModifySheet == mtInsert) { ACaptions[0] = "Insert"; ACaptions[1] = "Insert"; SetCaptions(ACaptions); } else { ACaptions[0] = "Delete"; ACaptions[1] = "Delete"; SetCaptions(ACaptions); } bool Result; Result = TForm::ShowModal() == mrOk; if (Result) { if (rbShiftCol->Checked) FModifySheet = msShiftCol; else if (rbShiftRw->Checked) FModifySheet = msShiftRow; else if (rbRw->Checked) FModifySheet = msAllCol; else FModifySheet = msAllRow; } return Result; }
void tGauge::ChangeDataType( const tDataId& dataId ) { m_SaveLimits = false; if( dataId == DATA_TYPE_INVALID ) { return; } //clear existing indicators m_Indicators.clear(); m_Indicators << tIndicator( dataId ); //set captions and limits tDigitalData pData( dataId ); AbsoluteLimits = pData.AbsoluteLimitsConverted(); tFloatLimits limits( pData.MinConverted(), pData.MaxConverted() ); tFloatLimits warnings( pData.WarningLowConverted(), pData.WarningHighConverted() ); m_UnitsType = pData.Units(); m_UnitsValue = tUnitsSettings::Instance()->Units( m_UnitsType ); //set update timer and update immediately UpdateValues(); //autoconfigure if applicable if( CanAutoConfigure() && AutoConfigure() ) { DoAutoConfigure(); } SetLimits( limits, warnings ); SetCaptions(); //does any type specific config ReconfigureGauge(); m_BackIsCached = false; m_ForeIsCached = false; update(); m_Modified = true; if( m_UnitsType != UNITS_ECONOMY ) { // m_SaveLimits = true; } }
void tGauge::InitialiseLimits() { tDigitalData pData( GetDataId() ); m_UnitsType = pData.Units( GetDataId().DataType() ); m_UnitsValue = tUnitsSettings::Instance()->Units( m_UnitsType ); AbsoluteLimits = pData.AbsoluteLimitsConverted(); //Check for user specified limits, else get from tDigitalData. tFloatLimits limits; if( m_GaugeParams.m_Limits.IsValid() && m_UnitsType != UNITS_ECONOMY ) { limits = pData.ConvertLimits( m_GaugeParams.m_Limits ); } else { limits = tFloatLimits( pData.MinConverted(), pData.MaxConverted() ); } //Check for user specified warnings, else get from tDigitalData. tFloatLimits warnings; if( m_GaugeParams.m_Warnings.IsValid() && m_UnitsType != UNITS_ECONOMY ) { warnings = pData.ConvertLimits( m_GaugeParams.m_Warnings ); } else { warnings = tFloatLimits( pData.WarningLowConverted(), pData.WarningHighConverted() ); } SetCaptions(); //mildly bad form when called from the constructor as SetLimits is virtual.. but base implementation is desired in this case, so all good. tGauge::SetLimits( limits, warnings ); // We may have dynamically changing custom limits. OnLimitsChanged(); }