void CObjectData::LoadData(CValue &Val) { if(Val.GetSizeStrArray()) { sType=Val.GetAt("Тип").GetString(); nLength=Val.GetAt("Длина"); nPrec=Val.GetAt("Точность"); /* nChildImage=Val.GetAt("ChildImage"); bEdit=Val.GetAt("Edit"); bGroup=Val.GetAt("Group"); nType=Val.GetAt("Type"); */ } }
void CDynControl::AddControl(CValue &ObjectVal) { if(ObjectVal.GetSizeStrArray()==0) return; m_csObjName=ObjectVal.GetAt("Микроформа"); m_nControlType=ObjectVal.GetAt("ТипЭлемента"); int nID=ObjectVal.GetAt("nID"); if(nID>=FORM_START_ID && nID<=FORM_FINISH_ID) { m_nID=nID; } CRect Rect; Rect.left=ObjectVal.GetAt("x1"); Rect.top=ObjectVal.GetAt("y1"); Rect.right=ObjectVal.GetAt("x2"); Rect.bottom=ObjectVal.GetAt("y2"); m_x1=Rect.left; m_y1=Rect.top; m_x2=Rect.right; m_y2=Rect.bottom; m_x3=m_x1; m_y3=m_y1; m_csName=ObjectVal.GetAt("Идентификатор"); m_csDescription=ObjectVal.GetAt("Описание"); m_csValue=ObjectVal.GetAt("Заголовок"); m_csVAllign=ObjectVal.GetAt("Положение верт"); m_csHAllign=ObjectVal.GetAt("Положение гориз"); m_bAutoSizeDown=ObjectVal.GetAt("Вниз")!=0; m_bAutoSizeRight=ObjectVal.GetAt("Вправо")!=0; m_csLayer=ObjectVal.GetAt("Слой"); if(m_csLayer.IsEmpty()) m_csLayer=DEFAULT_LAYER_NAME; m_bVisible=ObjectVal.GetAt("Видимость")!=0; m_bEnable=ObjectVal.GetAt("Доступность")!=0; m_nTabOrder=ObjectVal.GetAt("Пропускать при вводе")!=0; if (m_nControlType == ID_BUTTONFORMOBJECT) //Пользовательская форма - микроформа { m_Property=ObjectVal; } else { PrepareDataArray(); for(int i=0;i<aDataList.GetSize();i++) { int nType=aDataList[i].nType; if(nType==FUNCTION_DATA||nType==STRING_DATA||nType==LIST_DATA) aDataList[i].sData=ObjectVal.GetAt(aDataList[i].csName); else if(nType==INT_DATA||nType==BOOL_DATA||nType==COLOR_DATA) aDataList[i].nData=ObjectVal.GetAt(aDataList[i].csName); else if(nType==DOUBLE_DATA) aDataList[i].fData=ObjectVal.GetAt(aDataList[i].csName); } } AddControl(Rect); if(m_nControlType==ID_DYNBUTTONGRID) { bWasEdit=ObjectVal.GetAt("WasEdit"); if(bWasEdit) { CGridCtrl *pGrid=(CGridCtrl *)m_pWnd; int nColumn=ObjectVal.GetAt("Число колонок"); pGrid->SetColumnCount(nColumn); for(int nCol=0;nCol<pGrid->GetColumnCount();nCol++) { CValue Val; Val=ObjectVal.GetAt(nCol+1); CGridCell* pCell = (CGridCell*)pGrid->GetCell(0, nCol); if (pCell) if(Val.GetSizeStrArray()) { pGrid->aColumns[nCol].csName=Val.GetAt("Идентификатор"); pGrid->aColumns[nCol].csDescription=Val.GetAt("Описание"); pCell->TextData()=Val.GetAt("Заголовок"); pGrid->aColumns[nCol].csTitle=pCell->TextData(); pGrid->aColumns[nCol].csFormule=Val.GetAt("Формула"); pGrid->aColumns[nCol].csType=Val.GetAt("Тип значения"); pGrid->aColumns[nCol].nLength=Val.GetAt("Длина"); pGrid->aColumns[nCol].nPrec=Val.GetAt("Точность"); pGrid->aColumns[nCol].bVisible=Val.GetAt("Видимость")?1:0; pGrid->aColumns[nCol].bEnable=Val.GetAt("Доступность")?1:0; pGrid->aColumns[nCol].bTab=Val.GetAt("Пропускать при вводе")?1:0; int W=Val.GetAt("Ширина колонки"); //if(W!=0) { pGrid->aColumns[nCol].nColumnWidth=W; pGrid->m_arColWidths[nCol]=W; } } } } } }