Ejemplo n.º 1
0
void CDlgFreeTrainList::UpdateList()
{
  for(int no=0;no<m_ctlList.GetItemCount();no++)
	  g_SetCheck[no] = m_ctlList.GetCheck(no);
  while(m_ctlList.GetItemCount()<g_FreeTrainManageList.GetCount())
  {
    ::AddListItem(m_ctlList,0,0,"");
  }
  while(m_ctlList.GetItemCount()>g_FreeTrainManageList.GetCount())
  {
    m_ctlList.DeleteItem(0);
  }

  for(int item=0;item<g_FreeTrainManageList.GetCount();item++)
  {
    POSITION pos = g_FreeTrainManageList.FindIndex(item);
    struct TagFreeTrainStruct *pFreeTrain = (TagFreeTrainStruct *)g_FreeTrainManageList.GetAt(pos);

    ::SetItemText(m_ctlList,item,0,::GetFormatText("%d",item+1));
    ::SetItemText(m_ctlList,item,1,g_Unit[pFreeTrain->InFeederUnitID].UnitName);
    ::SetItemText(m_ctlList,item,2,g_Unit[pFreeTrain->OutFeederUnitID].UnitName);
    ::SetItemText(m_ctlList,item,3,::GetFormatText("%0.0f",pFreeTrain->AverCurrent));
    ::SetItemText(m_ctlList,item,4,::GetFormatText("%0.0f",pFreeTrain->AverAngle));
    ::SetItemText(m_ctlList,item,5,::GetFormatText("%d",pFreeTrain->InContinuedSeconds));
    ::SetItemText(m_ctlList,item,6,::GetFormatText("%d",pFreeTrain->ChangeContinuedSeconds));
    ::SetItemText(m_ctlList,item,7,::GetFormatText("%d",pFreeTrain->OutContinuedSeconds));
    ::SetItemText(m_ctlList,item,8,::GetFormatText("%0.1f",pFreeTrain->CurrentChangeRate*100));
    ::SetItemText(m_ctlList,item,9,::GetFormatText("%d",pFreeTrain->StartupDelaySecond));
    ::SetItemImage(m_ctlList,item,0);
	  m_ctlList.SetCheck(item,g_SetCheck[item]);
  }
}
Ejemplo n.º 2
0
void CDlgFreeTrainList::OnStartup() 
{
  if(::CheckOperateCondition()==FALSE)
    return;
	
  if(::AfxMessageBox("是否启动除自由行车?",MB_YESNO)==IDNO)
    return;

  for(int item=0;item<m_ctlList.GetItemCount();item++)
  {
	  if(m_ctlList.GetCheck(item))
    {
      POSITION pos = g_FreeTrainManageList.FindIndex(item);
      struct TagFreeTrainStruct *pFreeTrain = (TagFreeTrainStruct *)g_FreeTrainManageList.GetAt(pos);
      
      pFreeTrain->InBeginTime = CTime::GetCurrentTime() + CTimeSpan(0,0,0,pFreeTrain->StartupDelaySecond);;
      pFreeTrain->InFinishTime = pFreeTrain->InBeginTime+CTimeSpan(0,0,0,pFreeTrain->InContinuedSeconds);
      pFreeTrain->ChangeBeginTime = pFreeTrain->InFinishTime;
      pFreeTrain->ChangeFinishTime = pFreeTrain->ChangeBeginTime+CTimeSpan(0,0,0,pFreeTrain->ChangeContinuedSeconds);
      pFreeTrain->OutBeginTime = pFreeTrain->ChangeFinishTime;
      pFreeTrain->OutFinishTime = pFreeTrain->OutBeginTime+CTimeSpan(0,0,0,pFreeTrain->OutContinuedSeconds);

      struct TagFreeTrainStruct *pNewFreeTrain = new TagFreeTrainStruct;
      memcpy(pNewFreeTrain,pFreeTrain,sizeof(TagFreeTrainStruct));

      ::AddFreeTrain(pNewFreeTrain);

      g_pDlgMessageBox->DoShow("准备启动自由行车",3);
    }
  }

  OnCancel();
}
Ejemplo n.º 3
0
// 根据回调指针获取wke对象指针
CDuiWkeView* CDuiWkeView::GetWkeViewByClientHandler(const wkeClientHandler* pWkeClientHandler)
{
	int count = g_duiWkeViews.GetCount();
	for(int i = 0; i < count; i ++)
	{
		POSITION pos = g_duiWkeViews.FindIndex(i);
		CDuiWkeView* pDuiWkeView = (CDuiWkeView*)g_duiWkeViews.GetAt(pos);
		if(pWkeClientHandler == pDuiWkeView->GetWkeClientHandler())
		{
			return pDuiWkeView;
		}
	}
	return NULL;
}
Ejemplo n.º 4
0
void CDlgFreeTrainList::OnEdit() 
{
  if(m_ctlList.GetSelectedCount()!=1)
    return;

  POSITION pos = m_ctlList.GetFirstSelectedItemPosition();
  int item = m_ctlList.GetNextSelectedItem(pos);
  TagFreeTrainStruct *pFreeTrain = (TagFreeTrainStruct *)g_FreeTrainManageList.GetAt(g_FreeTrainManageList.FindIndex(item));

  CDlgFreeTrain dlg;
  dlg.m_pFreeTrain = pFreeTrain;
  if(dlg.DoModal()==IDOK)
	  UpdateList();
}
Ejemplo n.º 5
0
void CDlgFreeTrainList::OnClon() 
{
  if(m_ctlList.GetSelectedCount()!=1)
    return;

  POSITION pos = m_ctlList.GetFirstSelectedItemPosition();
  int item = m_ctlList.GetNextSelectedItem(pos);
  struct TagFreeTrainStruct *pFreeTrain = (TagFreeTrainStruct *)g_FreeTrainManageList.GetAt(g_FreeTrainManageList.FindIndex(item));
  struct TagFreeTrainStruct *pNewFreeTrain = new TagFreeTrainStruct;
  memcpy(pNewFreeTrain,pFreeTrain,sizeof(TagFreeTrainStruct));
  g_FreeTrainManageList.AddTail(pNewFreeTrain);

	UpdateList();
  ::SelectListLastItem(m_ctlList);
}
Ejemplo n.º 6
0
void CDlgFreeTrainList::OnSave() 
{
  if(::AfxMessageBox("是否保存除自由行车管理文件?",MB_YESNO)==IDNO)
    return;

  CString FileName = g_ProjectFilePath + "FeedTrain.lst";
	CFile file;
	if(!file.Open(FileName, CFile::modeCreate | CFile::modeWrite))
  {
    AfxMessageBox(FileName+" 保存文件失败!",MB_SYSTEMMODAL);
    return;
  }

  char buffer[1024];
  CArchive ar(&file,CArchive::store,1024,buffer);

  CString title = "FreeTrainList 1.0";
  ar<<title;

  WORD Count = g_FreeTrainManageList.GetCount();
  ar<<Count;
    
  for(int no=0;no<Count;no++)
  {
    POSITION pos = g_FreeTrainManageList.FindIndex(no);
    struct TagFreeTrainStruct *pFreeTrain = (TagFreeTrainStruct *)g_FreeTrainManageList.GetAt(pos);
    ar<<pFreeTrain->InFeederUnitID;
    ar<<pFreeTrain->OutFeederUnitID;
    ar<<pFreeTrain->AverCurrent;
    ar<<pFreeTrain->AverAngle;
    ar<<pFreeTrain->CurrentChangeRate;
    ar<<pFreeTrain->InContinuedSeconds;
    ar<<pFreeTrain->ChangeContinuedSeconds;
    ar<<pFreeTrain->OutContinuedSeconds;
    ar<<pFreeTrain->StartupDelaySecond;
    CString InCurrentChangeRateList = pFreeTrain->InCurrentChangeRateList;
    CString OutCurrentChangeRateList = pFreeTrain->OutCurrentChangeRateList;
    ar<<InCurrentChangeRateList;
    ar<<OutCurrentChangeRateList;
	  g_SetCheck[no] = m_ctlList.GetCheck(no);
    ar<<g_SetCheck[no];
  }

  ar.Flush();
  ar.Close();
  file.Close();
}
Ejemplo n.º 7
0
CDuiWkeView::~CDuiWkeView()
{
	if(m_hwndHost != NULL)
	{
		::DestroyWindow(m_hwndHost);
	}

	// 删除wke对象列表中的项
	int count = g_duiWkeViews.GetCount();
	for(int i = 0; i < count; i ++)
	{
		POSITION pos = g_duiWkeViews.FindIndex(i);
		CDuiWkeView* pDuiWkeView = (CDuiWkeView*)g_duiWkeViews.GetAt(pos);
		if(pDuiWkeView == this) 
		{
			g_duiWkeViews.RemoveAt(pos);
			return;
		}
	}
}
Ejemplo n.º 8
0
bool CORDBList::ReadDBInfo()
{
CDBInfo			*db;
CStdioFile		listfile, infofile;
CFileStatus		fstatus;
CFileException	e;
CPtrList		plist;
char			data[1025];
char			*tmp;


	if (infofile.Open(m_ordbinfo, CFile::modeRead)) {
		while (1) {
			memset(data, 0x00, 1024);
			TRY {
				if (infofile.ReadString(data, 1024) == NULL) break;
				data[strlen(data)-1] = NULL;

				db = new CDBInfo();
				tmp = strtok(data, " ");	// db name
				if (tmp) {
					db->m_dbname.Format("%s", tmp);
				}
				tmp = strtok(NULL, " "); // permanent
				if (tmp) {
					if (!strcmp(tmp, "1")) db->m_permanent = true;
					else				  db->m_permanent = false;
				} 
				plist.AddTail(db);
			}
			CATCH_ALL(e)
			{
				break;
			}
			END_CATCH_ALL
		}
		infofile.Close();
	} 

	if (listfile.Open(m_ordblist, CFile::modeRead)) {
		listfile.GetStatus(fstatus);
		m_LastTime = fstatus.m_mtime;
	} else {
		return false;
	}

	while (1) {
		memset(data, 0x00, 1024);
		TRY {
			if (listfile.ReadString(data, 1024) == NULL) break;
			data[strlen(data)-1] = NULL;

			db = new CDBInfo();
			tmp = strtok(data, " ");	// db name
			if (tmp) {
				db->m_dbname.Format("%s", tmp);
			}
			tmp = strtok(NULL, " "); // db path
			if (tmp) {
				db->m_dbpath.Format("%s", tmp);
			}
			tmp = strtok(NULL, " "); // host
			if (tmp) {
				db->m_host.Format("%s", tmp);
			}
			tmp = strtok(NULL, " "); // log path
			if (tmp) {
				db->m_logpath.Format("%s", tmp);
			}
			int cnt = (int) plist.GetCount();
			if (cnt > 0) {
				for (int i = 0; i < cnt; i++) {
					CDBInfo *p = (CDBInfo *)plist.GetAt(plist.FindIndex(i));
					if (db->m_dbname == p->m_dbname) {
						db->m_permanent = p->m_permanent;
						break;
					}
				}
			}
			m_List.AddTail(db);
		}
		CATCH_ALL(e)
		{
			break;
		}
		END_CATCH_ALL
	}

	listfile.Close();

	while (!plist.IsEmpty()) {
		CDBInfo *p = (CDBInfo *)plist.RemoveHead();
		delete p;
	}

	return true;
}
/////////////////////////////////////////////////////////
// Demonstrate:
// IADsPropertyList::GetPropertyItem
// IADsPropertyEntry
//
void CDlgIADsPropertyList::OnGet()
{

    HRESULT hr;
    CString s;
    BSTR    bstr;
    VARIANT var;
    IDispatch *pDispatch;
    IADsPropertyEntry *pEntry;
    IADsPropertyValue *pValue;
    LONG  lADsType;


    UpdateData(TRUE);
    m_cValueList.ResetContent();

    bstr = m_sAttribute.AllocSysString();
    hr = m_pPropList->GetPropertyItem( bstr, m_cADsType.GetCurSel()+1, &var );
    SysFreeString( bstr );


    if ( SUCCEEDED(hr) )
    {
        pDispatch = V_DISPATCH( &var );
        hr = pDispatch->QueryInterface( IID_IADsPropertyEntry, (void**) &pEntry );
        VariantClear( &var );

        // IADsPropertyEntry
        if ( SUCCEEDED(hr) )
        {
            CPtrList dList;

            // get_Values return array of VT_DISPATH
            hr = pEntry->get_Values( &var );


            pEntry->get_ADsType( &lADsType);

            hr = VariantToPtrList( var, dList );

            pEntry->Release();

            ////////////////////////////
            // IADsPropertyValue
            /////////////////////////////
            if ( SUCCEEDED(hr) )
            {
                POSITION pos;
                pos = dList.GetHeadPosition();
                while ( pos != NULL )
                {
                    pDispatch = (IDispatch*) dList.GetAt(pos);
                    hr = pDispatch->QueryInterface( IID_IADsPropertyValue, (void**) &pValue );

                    if ( SUCCEEDED(hr) )
                    {
                        pValue->AddRef();
                        hr = PropertyValueToString( lADsType, pValue, s );
                        m_cValueList.AddString( s );
                        pValue->Release();
                    }
                    dList.GetNext(pos);
                }

            }

            dList.RemoveAll();
            VariantClear(&var);

        }

    }
}