afx_msg void CRetrConfigDlg::OnDel() { CCellID SelectedCell; CWordArray arGrigIndexes; for(int m = 1; m < m_Grid.GetRowCount(); m++) { SelectedCell.row=m; SelectedCell.col=0; BOOL bRowSelected = FALSE; for(int s = 1; s < m_Grid.GetColumnCount(); s++) { if(m_Grid.GetItemState(SelectedCell.row,s) & GVIS_SELECTED) { bRowSelected=TRUE; break; } } if(bRowSelected) { arGrigIndexes.Add(SelectedCell.row); } } for(int j = 0; j < arGrigIndexes.GetSize();j++) { m_Grid.DeleteRow(arGrigIndexes[j]); m_Retr.m_ManyRetrArray.RemoveAt(arGrigIndexes[j]-1); for(int v = j+1; v < arGrigIndexes.GetSize();v++) { arGrigIndexes[v]--; } } SaveGrid(); UpdateGrid(); }
void CPreferences::GetLanguages(CWordArray& aLanguageIDs) { const SLanguage* pLang = _aLanguages; while (pLang->lid){ //if (pLang->bSupported) //show all languages, offer download if not supported ones later aLanguageIDs.Add(pLang->lid); pLang++; } }
afx_msg void CKorundmDlg::OnDel() { if(m_GridData.GetRowCount()==1) return; ProcessSave(); /* CCellID pCell = m_GridData.GetFocusCell(); if((pCell.row > 0)&&(pCell.col >= 0)) { m_Korundm.m_IndividualStructureKorundArray.RemoveAt(pCell.row-1); UpdateDataGrid(); UpdateKPGrid(); }*/ CCellID SelectedCell; CWordArray arGrigIndexes; for(int m = 1; m < m_GridData.GetRowCount(); m++) { SelectedCell.row=m; SelectedCell.col=0; BOOL bRowSelected = FALSE; for(int s = 1; s < m_GridData.GetColumnCount(); s++) { if(m_GridData.GetItemState(SelectedCell.row,s) & GVIS_SELECTED) { bRowSelected=TRUE; break; } } if(bRowSelected) { arGrigIndexes.Add(SelectedCell.row); } } for(int j = 0; j < arGrigIndexes.GetSize();j++) { m_GridData.DeleteRow(arGrigIndexes[j]); m_Korundm.m_IndividualStructureKorundArray.RemoveAt(arGrigIndexes[j]-1); for(int v = j+1; v < arGrigIndexes.GetSize();v++) { arGrigIndexes[v]--; } } if(arGrigIndexes.GetSize()>0) { UpdateDataGrid(); //UpdateKPGrid(); } }
void CZipArchive::DeleteFiles(CStringArray &aNames) { CWordArray indexes; for (WORD i = 0; i < GetNoEntries(); i++) { CFileHeader fh; GetFileInfo(fh, i); for (int j = 0; j < aNames.GetSize(); j++) if (!aNames[j].CollateNoCase(fh.m_szFileName)) { indexes.Add(i); break; } } DeleteFiles(indexes); }
afx_msg void CTuConfigTUDlg::OnDel() { CCellID SelectedCell; CWordArray arGrigIndexes; for(int m = 1; m < m_Grid.GetRowCount(); m++) { SelectedCell.row=m; SelectedCell.col=0; BOOL bRowSelected = FALSE; for(int s = 1; s < m_Grid.GetColumnCount(); s++) { if(m_Grid.GetItemState(SelectedCell.row,s) & GVIS_SELECTED) { bRowSelected=TRUE; break; } } if(bRowSelected) { arGrigIndexes.Add(SelectedCell.row); } } for(int j = 0; j < arGrigIndexes.GetSize();j++) { m_Grid.DeleteRow(arGrigIndexes[j]); m_TuArray.RemoveAt(arGrigIndexes[j]-1); for(int v = j+1; v < arGrigIndexes.GetSize();v++) { arGrigIndexes[v]--; } } /*CCellID pCell = m_Grid.GetFocusCell(); if((pCell.row > 0)&&(pCell.col >= 0)) { m_TuArray.RemoveAt(pCell.row-1); }*/ SaveGrid(); UpdateGrid(); }
void CSmartFieldsDialog::UpdateFields(BOOL fReflow, int nMacro /*=-1*/) { CWordArray cwaMacros; /* If "values" changed, reflow all... */ if (m_pMacroServer->ShowMacroValues() != m_fShowValues) { ASSERT(nMacro == -1); m_pMacroServer->ShowMacroValues(m_fShowValues); fReflow = TRUE; } /* If a macro changed, update it... */ if (nMacro != -1) { CMacro* pMacro = m_pMacros->Macro(nMacro); ASSERT(pMacro != NULL); cwaMacros.Add(pMacro->Id() + MACRO_CHARACTER); } /* Reflow if needed. */ m_pMacroServer->ModifiedMacros(); m_pDoc->SetModifiedFlag(); if (fReflow) { m_pDoc->ReflowMacros(nMacro == -1 ? NULL : &cwaMacros); if (m_pReflowHook != NULL) { m_pReflowHook(m_pReflowData); } } }
BOOL CRetrConfigDlg::SaveGrid(void) { CString str; CManyRetrArray ManyRetrArray; for(int i = 1; i < m_Grid.GetRowCount();i++) { ManyRetr tmp; str = m_Grid.GetItemText(i,1); tmp.START_ADRES_OBJECT = atoi(str); str = m_Grid.GetItemText(i,2); tmp.START_ADRES_RETR = atoi(str); str = m_Grid.GetItemText(i,3); tmp.NUM_MANY_RETR_OBJECT = atoi(str); if(tmp.NUM_MANY_RETR_OBJECT == 0) { str.Format("Не задано количество объектов ретрансяляции! Строка: %d",i); m_Grid.SetFocusCell(i,3); AfxMessageBox(str); return FALSE; } str = m_Grid.GetItemText(i,4); if(str.IsEmpty()) { str.Format("Не задан процесс ретрансяляции! Строка: %d",i); m_Grid.SetFocusCell(i,4); AfxMessageBox(str); return FALSE; } str.TrimLeft('№'); int index = str.Find(' '); str = str.Left(index); tmp.PATH_DIRECT = atoi(str); tmp.FLAG_RETR = 5; tmp.strCOMMENT = m_Grid.GetItemText(i,5); ManyRetrArray.Add(tmp); } for(int j = 0; j < ManyRetrArray.GetSize(); j++) { if((ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Retr.NUM_RETR_OBJECT) ||(ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Retr.NUM_RETR_OBJECT)) { str.Format("Выход за пределы адресного пространства ретрансляции! Строка: %d",j+1); AfxMessageBox(str); //return FALSE; } //Уточнить у Виталика!!!! if(ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Main_Set.m_ProcessInfoArray[ManyRetrArray[j].PATH_DIRECT-1].AMOUNT_SIGNIFICATE) { str.Format("Выход за пределы адресного пространства процесса! Строка: %d",j+1); AfxMessageBox(str); //return FALSE; } for(int k = j+1; k < ManyRetrArray.GetSize(); k++) { if((ManyRetrArray[j].NUM_MANY_RETR_OBJECT == ManyRetrArray[k].NUM_MANY_RETR_OBJECT) &&(ManyRetrArray[j].PATH_DIRECT == ManyRetrArray[k].PATH_DIRECT) &&(ManyRetrArray[j].START_ADRES_OBJECT == ManyRetrArray[k].START_ADRES_OBJECT) &&(ManyRetrArray[j].START_ADRES_RETR == ManyRetrArray[k].START_ADRES_RETR)) { str.Format("Одинаковые наборы ретрансляции: %d и %d !",j+1,k+1); AfxMessageBox(str); return FALSE; } if(ManyRetrArray[j].PATH_DIRECT == ManyRetrArray[k].PATH_DIRECT)//proverka na naloghenie { //Газин сказал не надо проверять!!! /*//k=15..25 j=10..20 if((ManyRetrArray[k].START_ADRES_OBJECT >= ManyRetrArray[j].START_ADRES_RETR) &&(ManyRetrArray[k].START_ADRES_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT)) { str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1); AfxMessageBox(str); return FALSE; } //k=1..25 j=10..20 if((ManyRetrArray[k].START_ADRES_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT) &&(ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT)) { str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1); AfxMessageBox(str); return FALSE; } //k=1..15 j=10..20 if((ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_OBJECT) &&(ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT)) { str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1); AfxMessageBox(str); return FALSE; }*/ ////////////////////////////////////////////////////////////////////////////////////////////////// //k=15..25 j=10..20 if((ManyRetrArray[k].START_ADRES_RETR >= ManyRetrArray[j].START_ADRES_RETR) &&(ManyRetrArray[k].START_ADRES_RETR < ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT)) { str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1); AfxMessageBox(str); return FALSE; } //k=1..25 j=10..20 if((ManyRetrArray[k].START_ADRES_RETR <= ManyRetrArray[j].START_ADRES_RETR) &&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT)) { str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1); AfxMessageBox(str); return FALSE; } //k=1..15 j=10..20 if((ManyRetrArray[k].START_ADRES_RETR >= ManyRetrArray[j].START_ADRES_RETR) &&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_RETR) &&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT <= ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT)) { str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1); AfxMessageBox(str); return FALSE; } } } } CWordArray arrPD; for(int j = 0; j < ManyRetrArray.GetSize(); j++) { BOOL bFound = FALSE; for(int l = 0; l < arrPD.GetSize(); l++) { if(arrPD[l] == (WORD)ManyRetrArray[j].PATH_DIRECT) { ManyRetrArray[j].PLACE_OF_PUT = l; bFound = TRUE; break; } } if(!bFound) { ManyRetrArray[j].PLACE_OF_PUT = arrPD.Add((WORD)ManyRetrArray[j].PATH_DIRECT); } } m_Retr.NUM_TRANSMIT_DIRECT = arrPD.GetSize(); m_Retr.m_ManyRetrArray.RemoveAll(); m_Retr.m_ManyRetrArray.Copy(ManyRetrArray); return TRUE; }
void CRetrConfigDlg::UpdateGrid(void) { CString str; CStringArray aOptions; CWordArray aProcesses; for(int j = 0; j < m_Main_Set.m_ProcessInfoArray.GetSize();j++) { if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 2) { str.Format("№%d (MODBUS-slave)",j+1); aProcesses.Add(j+1); aOptions.Add(str); } if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 4) { str.Format("№%d (IEC870-5-101-slave)",j+1); aOptions.Add(str); aProcesses.Add(j+1); } if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 8) { str.Format("№%d (IEC870-5-104-slave PtP)",j+1); aOptions.Add(str); aProcesses.Add(j+1); } if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 14) { str.Format("№%d (IEC870-5-104-slave PtMP)",j+1); aOptions.Add(str); aProcesses.Add(j+1); } if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 18) { str.Format("№%d (Вывод на ДЩ)",j+1); aOptions.Add(str); aProcesses.Add(j+1); } } m_Grid.DeleteNonFixedRows(); for(int i = 0; i < m_Retr.m_ManyRetrArray.GetSize();i++) { int nIndex = m_Grid.InsertRow(NULL); str.Format("%d",i+1); m_Grid.SetItemText(nIndex,0,str); str.Format("%d",m_Retr.m_ManyRetrArray[i].START_ADRES_OBJECT); m_Grid.SetItemText(nIndex,1,str); str.Format("%d",m_Retr.m_ManyRetrArray[i].START_ADRES_RETR); m_Grid.SetItemText(nIndex,2,str); str.Format("%d",m_Retr.m_ManyRetrArray[i].NUM_MANY_RETR_OBJECT); m_Grid.SetItemText(nIndex,3,str); m_Grid.SetCellType(nIndex,4, RUNTIME_CLASS(CGridCellCombo)); CGridCellCombo *pCell = (CGridCellCombo*) m_Grid.GetCell(nIndex,4); pCell->SetOptions(aOptions); pCell->SetStyle(CBS_DROPDOWNLIST); //CBS_DROPDOWN, CBS_DROPDOWNLIST, CBS_SIMPLE for(int k = 0; k < aProcesses.GetSize(); k++) { if(aProcesses[k] == m_Retr.m_ManyRetrArray[i].PATH_DIRECT) { pCell->SetCurSel(k); break; } } m_Grid.SetItemText(nIndex,5,m_Retr.m_ManyRetrArray[i].strCOMMENT); } m_Grid.AutoSize(); m_Grid.Refresh(); }