#include "IoPadDefine.h" #include "Register.h" #include "Runtime.h" #define TextTopOffSet 6 #define ListLineCnt 10 #define ipdWidth0 54 #define ipdWidth1 40 #define ipdWidth2 30 #define ipdWidth3 40 #define ipdWidth4 30 void TIoPadDefine::Init(int x1, int y1, int aW, int aH, int OwnerX, int OwnerY, u32 aColor) { #define CH 30 //Caption Height unsigned short Left,Right, Top, Bottom, Width, Height, i; Bound.SetBySize(OwnerX + x1, OwnerY + y1, aW, aH); Left = Bound.Left +3; Top = Bound.Top+3; Width = aW - 7; Height = aH - 7; Right = Bound.Right -4; Bottom = Bound.Bottom -4; Caption.Init(Left, Top, Width, CH, 0, 0, clWhite, clMaroon); SText.Init (319, Top, 480, CH, 0, 0, clWhite, clMaroon); Content0.Set(Left, Top+CH, Left + ipdWidth0 -1, Bottom); Left = Left + ipdWidth0 ; Content1.Set(Left, Top+CH, Left + ipdWidth1 + ipdWidth2 -1, Bottom); Left = Left + ipdWidth1 + ipdWidth2 ; Content2.Set(Left, Top+CH, Left + ipdWidth3 + ipdWidth4 -1, Bottom); Left = Left + ipdWidth3 + ipdWidth4 ; Content3.Set(Left, Top+CH, Left + 599 -1, Bottom); VScrollBarBox.Set(Right -20 +1, Top + CH, Right, Bottom); Color = aColor; #undef CH ActiveLineNum=0; ListView.ColHeight = 33; ListView.RowCount = 9; ListView.FixColTop = Content0.Top; ListView.FixColBottom = ListView.FixColTop + ListView.ColHeight; ListView.ColTop[0] = ListView.FixColBottom + 1; ListView.ColBottom[0] = ListView.ColTop[0] + ListView.ColHeight -1; ListView.ColLeft[0] = 1; ListView.ColRight[0] = ListView.ColWidth[0] +1; for(i=1; i<12; i++){ ListView.ColTop[i] = ListView.ColTop[i -1] + ListView.ColHeight; ListView.ColBottom[i] = ListView.ColBottom[i-1] + ListView.ColHeight; } for(i=1;i aRect.Bottom)y2 = aRect.Bottom; if(x == aSelCol){ if(Index == 0){ if( (CtlLevel == 0) && (IsEditing ==0) )aSelClr = clBlue; else aSelClr = clGray; }else if(Index == 1){ if( (CtlLevel == 1) && (IsEditing ==0) )aSelClr = clBlue; else aSelClr = clGray; } if(Index == 2){ if( (CtlLevel == 2) && (IsEditing ==0) )aSelClr = clBlue; else aSelClr = clGray; } RectFillRender(aRect.Left, y, aRect.Right, y2, aSelClr); }else{ if(x & 1){ RectFillRender(aRect.Left, y, aRect.Right, y2, OddColor); }else{ RectFillRender(aRect.Left, y, aRect.Right, y2, Color); } } y = y2 + 1; if(y>aRect.Bottom)break; } } void TIoPadDefine::RenderContent0(unsigned int aClr) { RenderContent(Content0, clMoneyGreen,0); } void TIoPadDefine::RenderContent1(unsigned int aClr) { RenderContent(Content1, clNearWhite,1); } void TIoPadDefine::RenderContent2(unsigned int aClr) { RenderContent(Content2, clMoneyGreen,2); } void TIoPadDefine::RenderContent3(unsigned int aClr) { #define FixColColor clMedGray #define OddColor clNearMoneyGreen unsigned int x,y; unsigned int aRow; RectFillRender(Content3.Left, ListView.FixColTop, Content3.Right, ListView.FixColBottom, FixColColor); for(x=5; x<10; x++){ aRow = x -5; for(y=0; y= Loaded1.Count)break; if(i == Level1.SelectedCol)aClr = clNearWhite; else aClr = clNearBlack; aIndex = Loaded1.ItemsPath[x]; if(aIndex < 1)return; aTop = ListView.ColTop[i] + TextTopOffSet; TextDigitRender3Right24(ListView.ColLeft[1], aTop, aClr, aIndex); aType = Loaded1.Type[x]; if(aType > 30)aType = 30; ImageList.Render(24, aType, ListView.ColLeft[2], aTop); aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[3], aTop, aClr, 1); x++; } } void TIoPadDefine::RenderHandCtlChannelPrm(void) { int aTop, i, aIdx, aCount, aType; unsigned int aClr; RenderContent3(0xFF000000); aTop = ListView.FixColTop + TextTopOffSet; TextRender_string24(ListView.ColLeft[5],aTop,TextColor, " 指派类型" ); TextRender_string24(ListView.ColLeft[6],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[7],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[8],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[9],aTop,TextColor, "区域" ); aCount = Loaded1.Count; aIdx = Level1.TopIndex; aClr = clNearBlack; if(1){ for(i=0; i= aCount)return; if(1){ if((IsEditing) && (PrmEdit.SelectedCol == i) ){ aTop = ListView.ColTop[i] + TextTopOffSet; if(PrmEdit.SelectedRow == 0) aClr = clNearWhite; else aClr = clNearBlack; aType = ValueList[aIdx][0].eType; if(aType >30)aType =30; TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_oType[aType]); if(PrmEdit.SelectedRow == 1) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[6],aTop,aClr, ValueList[aIdx][0].Group0 ); if(PrmEdit.SelectedRow == 2) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[7],aTop,aClr, ValueList[aIdx][0].Group1); if(PrmEdit.SelectedRow == 3) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[8],aTop,aClr, ValueList[aIdx][0].Group2 ); if(PrmEdit.SelectedRow == 4) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[9],aTop,aClr, ValueList[aIdx][0].Group3 ); }else{ aTop = ListView.ColTop[i] + TextTopOffSet; aType = ValueList[aIdx][0].eType; if(aType >30)aType =30; TextRender_string24(ListView.ColLeft[5],aTop,clNearBlack, StrAssign_oType[aType]); TextDigitRender3Right24(ListView.ColLeft[6],aTop,clNearBlack, ValueList[aIdx][0].Group0 ); TextDigitRender3Right24(ListView.ColLeft[7],aTop,clNearBlack, ValueList[aIdx][0].Group1 ); TextDigitRender3Right24(ListView.ColLeft[8],aTop,clNearBlack, ValueList[aIdx][0].Group2); TextDigitRender3Right24(ListView.ColLeft[9],aTop,clNearBlack, ValueList[aIdx][0].Group3); } } aIdx++; } } } TGuiMsgReturn TIoPadDefine::HandCtlKeyIn(unsigned char aKey) { TGuiMsgReturn aMsg = guiMsgNone; unsigned char aP0,aP1,Updata; unsigned char x,y,aCh; Updata = 0; if(aKey == VK_LEFT){ if(IsEditing){ if(PrmEdit.SelectedRow>0){ PrmEdit.SelectedRow--; RenderHandCtlChannelPrm(); }else{ IsEditing = 0; IsModifing = 0; RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } }else{ if(CtlLevel >0){ if(CtlLevel == 1){ CtlLevel = 0; RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); IsWarningSave =1; RenderWarningSave(); }else{ CtlLevel--; if(CtlLevel == 0){ }else if(CtlLevel == 1){ LoadHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); }else{ CtlLevel =0; LoadHandCtl(); LoadHandCtlChannel(); RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } } } }else if(aKey == VK_RIGHT){ if(IsEditing){ if(PrmEdit.SelectedRow<4){ PrmEdit.SelectedRow++; RenderHandCtlChannelPrm(); } }else{ if(CtlLevel == 0){ CtlLevel++; LoadHandCtlChannel(); RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); }else if(CtlLevel == 1){ IsEditing = 1; PrmEdit.SelectedCol = Level1.SelectedCol; PrmEdit.SelectedRow = 0; RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } }else if(aKey == VK_UP){ if(IsEditing){ if(IsModifing){ aCh = 0; if(CtlLevel == 1){ y = Level1.SelectedIndex; } x = PrmEdit.SelectedRow; if(x==0){ if(ValueList[y][aCh].eType < 30)ValueList[y][aCh].eType++; }else if(x==1){ ValueList[y][aCh].Group0++; }else if(x==2){ ValueList[y][aCh].Group1++; }else if(x==3){ ValueList[y][aCh].Group2++; }else if(x==4){ ValueList[y][aCh].Group3++; } RenderHandCtlChannel(); RenderHandCtlChannelPrm(); }else{ if(CtlLevel ==1){ if(Level1.SelectedCol >0){ Level1.SelectedCol--; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; }else{ if(Level1.TopIndex >0){ Level1.TopIndex --; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } } }else{ if(CtlLevel == 0){ //ListLineCnt if(Level0.SelectedCol >0){ Level0.SelectedCol--; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadHandCtl(); LoadHandCtlChannel(); RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); }else{ if(Level0.TopIndex >0){ Level0.TopIndex --; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadHandCtl(); LoadHandCtlChannel(); RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } }else if(CtlLevel == 1){ if(Level1.SelectedCol >0){ Level1.SelectedCol--; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; }else{ if(Level1.TopIndex >0){ Level1.TopIndex --; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } } }else if(aKey == VK_DOWN){ if(IsEditing){ if(IsModifing){ aCh = 0; y = Level1.SelectedIndex; x = PrmEdit.SelectedRow; if(x==0){ if(ValueList[y][aCh].eType >0)ValueList[y][aCh].eType--; }else if(x==1){ ValueList[y][aCh].Group0--; }else if(x==2){ ValueList[y][aCh].Group1--; }else if(x==3){ ValueList[y][aCh].Group2--; }else if(x==4){ ValueList[y][aCh].Group3--; } RenderHandCtlChannel(); RenderHandCtlChannelPrm(); }else{ if(CtlLevel == 1){ if(Level1.SelectedCol < (ListLineCnt-1)){ if( (Level1.TopIndex + Level1.SelectedCol) < (Loaded1.Count -1) ){ Level1.SelectedCol++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } }else{ if( (Level1.TopIndex + ListLineCnt) < Loaded1.Count){ Level1.TopIndex ++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } } }else{ if(CtlLevel == 0){ //ListLineCnt if(Level0.SelectedCol < (ListLineCnt-1)){ if( (Level0.TopIndex + Level0.SelectedCol) < (Loaded0.Count -1) ){ Level0.SelectedCol++; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadHandCtl(); LoadHandCtlChannel(); RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } }else{ if( (Level0.TopIndex + ListLineCnt) < Loaded0.Count){ Level0.TopIndex ++; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadHandCtl(); LoadHandCtlChannel(); RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } }else if(CtlLevel == 1){ if(Level1.SelectedCol < (ListLineCnt-1)){ if( (Level1.TopIndex + Level1.SelectedCol) < (Loaded1.Count -1) ){ Level1.SelectedCol++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } }else{ if( (Level1.TopIndex + ListLineCnt) < Loaded1.Count){ Level1.TopIndex ++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } } }else if(aKey == VK_F1){ //Go Modify if(IsEditing){ if(IsModifing)IsModifing =0; else IsModifing = 1; RenderHandCtlChannelPrm(); } }else if(aKey == VK_TAB){ if(IsWarningSave){ //User Not Save Here IsWarningSave = 0; CtlLevel = 0; RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } if(aKey == VK_EXECUTE){ //Save Data Here if(IsWarningSave){ //Save Here if(IsReqReturn){ //Save and Return aMsg = guiMsgReturn; }else{ IsWarningSave = 0; RenderHandCtl(); RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } }else{ //ask if Save Here IsWarningSave = 1; RenderWarningSave(); } }else if(aKey == VK_RETURN){ if(IsWarningSave ==0){ IsWarningSave = 1; RenderWarningSave(); IsReqReturn = 1; }else{ IsWarningSave = 0; if(IsReqReturn){ aMsg = guiMsgReturn; }else{ RenderHandCtlChannel(); RenderHandCtlChannelPrm(); } } } return aMsg; } //_________________________________________________________________________________________________________________________________________ void TIoPadDefine::SetDirectCtl(void) { ParentType = 1; } void TIoPadDefine::LoadDirectCtl(void) { int i; Loaded0.Count = 0; for(i=0; i<256;i++){ Loaded0.ItemsPath[i] =0; } for(i=0; i= Loaded1.Count)break; if(i == Level1.SelectedCol)aClr = clNearWhite; else aClr = clNearBlack; aIndex = Loaded1.ItemsPath[x]; if(aIndex < 1)return; aTop = ListView.ColTop[i] + TextTopOffSet; TextDigitRender3Right24(ListView.ColLeft[1], aTop, aClr, aIndex); aType = Loaded1.Type[x]; if(aType > 30)aType = 30; ImageList.Render(24, aType, ListView.ColLeft[2], aTop); aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[3], aTop, aClr, 1); x++; } } void TIoPadDefine::RenderDirectCtlChannelPrm(void) { int aTop, i, aIdx, aCount, aType; unsigned int aClr; RenderContent3(0xFF000000); aTop = ListView.FixColTop + TextTopOffSet; TextRender_string24(ListView.ColLeft[5],aTop,TextColor, " 指派类型" ); TextRender_string24(ListView.ColLeft[6],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[7],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[8],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[9],aTop,TextColor, "区域" ); aCount = Loaded1.Count; aIdx = Level1.TopIndex; aClr = clNearBlack; if(1){ for(i=0; i= aCount)return; if(1){ if((IsEditing) && (PrmEdit.SelectedCol == i) ){ aTop = ListView.ColTop[i] + TextTopOffSet; if(PrmEdit.SelectedRow == 0) aClr = clNearWhite; else aClr = clNearBlack; aType = ValueList[aIdx][0].eType; if(aType >30)aType =30; TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_oType[aType]); if(PrmEdit.SelectedRow == 1) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[6],aTop,aClr, ValueList[aIdx][0].Group0 ); if(PrmEdit.SelectedRow == 2) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[7],aTop,aClr, ValueList[aIdx][0].Group1); if(PrmEdit.SelectedRow == 3) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[8],aTop,aClr, ValueList[aIdx][0].Group2 ); if(PrmEdit.SelectedRow == 4) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[9],aTop,aClr, ValueList[aIdx][0].Group3 ); }else{ aTop = ListView.ColTop[i] + TextTopOffSet; aType = ValueList[aIdx][0].eType; if(aType >30)aType =30; TextRender_string24(ListView.ColLeft[5],aTop,clNearBlack, StrAssign_oType[aType]); TextDigitRender3Right24(ListView.ColLeft[6],aTop,clNearBlack, ValueList[aIdx][0].Group0 ); TextDigitRender3Right24(ListView.ColLeft[7],aTop,clNearBlack, ValueList[aIdx][0].Group1 ); TextDigitRender3Right24(ListView.ColLeft[8],aTop,clNearBlack, ValueList[aIdx][0].Group2); TextDigitRender3Right24(ListView.ColLeft[9],aTop,clNearBlack, ValueList[aIdx][0].Group3); } } aIdx++; } } } TGuiMsgReturn TIoPadDefine::DirectCtlKeyIn(unsigned char aKey) { TGuiMsgReturn aMsg = guiMsgNone; unsigned char aP0,aP1,Updata; unsigned char x,y,aCh; Updata = 0; if(aKey == VK_LEFT){ if(IsEditing){ if(PrmEdit.SelectedRow>0){ PrmEdit.SelectedRow--; RenderDirectCtlChannelPrm(); }else{ IsEditing = 0; IsModifing = 0; RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } }else{ if(CtlLevel >0){ if(CtlLevel == 1){ CtlLevel = 0; RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); IsWarningSave =1; RenderWarningSave(); }else{ CtlLevel--; if(CtlLevel == 0){ }else if(CtlLevel == 1){ LoadDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); }else{ CtlLevel =0; LoadDirectCtl(); LoadDirectCtlChannel(); RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } } } }else if(aKey == VK_RIGHT){ if(IsEditing){ if(PrmEdit.SelectedRow<4){ PrmEdit.SelectedRow++; RenderDirectCtlChannelPrm(); } }else{ if(CtlLevel == 0){ CtlLevel++; LoadDirectCtlChannel(); RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); }else if(CtlLevel == 1){ IsEditing = 1; PrmEdit.SelectedCol = Level1.SelectedCol; PrmEdit.SelectedRow = 0; RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } }else if(aKey == VK_UP){ if(IsEditing){ if(IsModifing){ aCh = 0; if(CtlLevel == 1){ y = Level1.SelectedIndex; } x = PrmEdit.SelectedRow; if(x==0){ if(ValueList[y][aCh].eType < 30)ValueList[y][aCh].eType++; }else if(x==1){ ValueList[y][aCh].Group0++; }else if(x==2){ ValueList[y][aCh].Group1++; }else if(x==3){ ValueList[y][aCh].Group2++; }else if(x==4){ ValueList[y][aCh].Group3++; } RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); }else{ if(CtlLevel ==1){ if(Level1.SelectedCol >0){ Level1.SelectedCol--; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; }else{ if(Level1.TopIndex >0){ Level1.TopIndex --; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } } }else{ if(CtlLevel == 0){ //ListLineCnt if(Level0.SelectedCol >0){ Level0.SelectedCol--; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadDirectCtl(); LoadDirectCtlChannel(); RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); }else{ if(Level0.TopIndex >0){ Level0.TopIndex --; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadDirectCtl(); LoadDirectCtlChannel(); RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } }else if(CtlLevel == 1){ if(Level1.SelectedCol >0){ Level1.SelectedCol--; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; }else{ if(Level1.TopIndex >0){ Level1.TopIndex --; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } } }else if(aKey == VK_DOWN){ if(IsEditing){ if(IsModifing){ aCh = 0; y = Level1.SelectedIndex; x = PrmEdit.SelectedRow; if(x==0){ if(ValueList[y][aCh].eType >0)ValueList[y][aCh].eType--; }else if(x==1){ ValueList[y][aCh].Group0--; }else if(x==2){ ValueList[y][aCh].Group1--; }else if(x==3){ ValueList[y][aCh].Group2--; }else if(x==4){ ValueList[y][aCh].Group3--; } RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); }else{ if(CtlLevel == 1){ if(Level1.SelectedCol < (ListLineCnt-1)){ if( (Level1.TopIndex + Level1.SelectedCol) < (Loaded1.Count -1) ){ Level1.SelectedCol++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } }else{ if( (Level1.TopIndex + ListLineCnt) < Loaded1.Count){ Level1.TopIndex ++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } } }else{ if(CtlLevel == 0){ //ListLineCnt if(Level0.SelectedCol < (ListLineCnt-1)){ if( (Level0.TopIndex + Level0.SelectedCol) < (Loaded0.Count -1) ){ Level0.SelectedCol++; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadDirectCtl(); LoadDirectCtlChannel(); RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } }else{ if( (Level0.TopIndex + ListLineCnt) < Loaded0.Count){ Level0.TopIndex ++; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadDirectCtl(); LoadDirectCtlChannel(); RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } }else if(CtlLevel == 1){ if(Level1.SelectedCol < (ListLineCnt-1)){ if( (Level1.TopIndex + Level1.SelectedCol) < (Loaded1.Count -1) ){ Level1.SelectedCol++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } }else{ if( (Level1.TopIndex + ListLineCnt) < Loaded1.Count){ Level1.TopIndex ++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } } }else if(aKey == VK_F1){ //Go Modify if(IsEditing){ if(IsModifing)IsModifing =0; else IsModifing = 1; RenderDirectCtlChannelPrm(); } }else if(aKey == VK_TAB){ if(IsWarningSave){ //User Not Save Here IsWarningSave = 0; CtlLevel = 0; RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } if(aKey == VK_EXECUTE){ //Save Data Here if(IsWarningSave){ //Save Here if(IsReqReturn){ //Save and Return aMsg = guiMsgReturn; }else{ IsWarningSave = 0; RenderDirectCtl(); RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } }else{ //ask if Save Here IsWarningSave = 1; RenderWarningSave(); } }else if(aKey == VK_RETURN){ if(IsWarningSave ==0){ IsWarningSave = 1; RenderWarningSave(); IsReqReturn = 1; }else{ IsWarningSave = 0; if(IsReqReturn){ aMsg = guiMsgReturn; }else{ RenderDirectCtlChannel(); RenderDirectCtlChannelPrm(); } } } return aMsg; } //________________________________________________________________________________________________________________________________________ //________________________________________________________________________________________________________________________________________ void TIoPadDefine::SetPort(void) { ParentType = 2; } void TIoPadDefine::LoadPort(void) { int i; Loaded0.Count = 0; for(i=0; i<256;i++){ Loaded0.ItemsPath[i] =0; } for(i=0; i= Loaded1.Count)break; if(i == Level1.SelectedCol)aClr = clNearWhite; else aClr = clNearBlack; aIndex = Loaded1.ItemsPath[x]; if(aIndex < 1)return; aTop = ListView.ColTop[i] + TextTopOffSet; TextDigitRender3Right24(ListView.ColLeft[1], aTop, aClr, aIndex); aType = Loaded1.Type[x]; if(aType > 30)aType = 30; ImageList.Render(24, aType, ListView.ColLeft[2], aTop); aClr = clNearBlack; if(Loaded1.ChannelCount[x] > 1){ TextDigitRender3Right24(ListView.ColLeft[3], aTop, aClr, Loaded1.ChannelInCount[x]); }else{ TextDigitRender3Right24(ListView.ColLeft[3], aTop, aClr, Loaded1.ChannelCount[x]); } x++; } } void TIoPadDefine::RenderEpChannel(void) { int i, x, aIndex, BGClr, TextClr, aTop; unsigned int aClr; unsigned char aType; unsigned char aP0; RenderContent2(0xFF000000); aTop = ListView.FixColTop + TextTopOffSet; TextRender_string24(ListView.ColLeft[0],aTop,TextColor, "回路" ); TextRender_string24(ListView.ColLeft[1],aTop,TextColor, " 地址" ); TextRender_string24(ListView.ColLeft[3],aTop,TextColor, " 通道" ); x = Level2.TopIndex; for(i=0; i= Loaded2.Count)break; if(i == Level2.SelectedCol)aClr = clNearWhite; else aClr = clNearBlack; aIndex = Loaded2.ItemsPath[x]; if(aIndex < 1)return; aTop = ListView.ColTop[i] + TextTopOffSet; TextDigitRender3Right24(ListView.ColLeft[3], aTop, aClr, aIndex); x++; } } void TIoPadDefine::RenderEpPrm(void) { int aTop, i, x, aIdx, aCount; unsigned int aClr; RenderContent3(clMoneyGreen); aTop = ListView.FixColTop + TextTopOffSet; TextRender_string24(ListView.ColLeft[5],aTop,TextColor, " 指派类型" ); TextRender_string24(ListView.ColLeft[6],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[7],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[8],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[9],aTop,TextColor, "区域" ); aCount = Loaded1.Count; aIdx = Level1.TopIndex; aClr = clNearBlack; if(1){ for(i=0; i= aCount)return; if(Loaded1.ChannelCount[aIdx] == 1){ if((IsEditing) && (PrmEdit.SelectedCol == i) ){ aTop = ListView.ColTop[i] + TextTopOffSet; if(PrmEdit.SelectedRow == 0) aClr = clNearWhite; else aClr = clNearBlack; if(Loaded1.ChannelInCount) TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_iType[ValueList[aIdx][0].eType]); else TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_oType[ValueList[aIdx][0].eType]); if(PrmEdit.SelectedRow == 1) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[6],aTop,aClr, ValueList[aIdx][0].Group0 ); if(PrmEdit.SelectedRow == 2) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[7],aTop,aClr, ValueList[aIdx][0].Group1); if(PrmEdit.SelectedRow == 3) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[8],aTop,aClr, ValueList[aIdx][0].Group2 ); if(PrmEdit.SelectedRow == 4) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[9],aTop,aClr, ValueList[aIdx][0].Group3 ); }else{ aTop = ListView.ColTop[i] + TextTopOffSet; if(Loaded1.ChannelInCount) TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_iType[ValueList[aIdx][0].eType]); else TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_oType[ValueList[aIdx][0].eType]); TextDigitRender3Right24(ListView.ColLeft[6],aTop,clNearBlack, ValueList[aIdx][0].Group0 ); TextDigitRender3Right24(ListView.ColLeft[7],aTop,clNearBlack, ValueList[aIdx][0].Group1 ); TextDigitRender3Right24(ListView.ColLeft[8],aTop,clNearBlack, ValueList[aIdx][0].Group2); TextDigitRender3Right24(ListView.ColLeft[9],aTop,clNearBlack, ValueList[aIdx][0].Group3); } } aIdx++; } } } void TIoPadDefine::RenderEpChannelPrm() { int aTop, i, x, aIdx, aCount, aType; unsigned int aClr; unsigned int sColClr, sRowClr; unsigned int sColTextClr, sRowTextClr; unsigned char aCh; RenderContent3(clMoneyGreen); aTop = ListView.FixColTop + TextTopOffSet; TextRender_string24(ListView.ColLeft[5],aTop,TextColor, " 指派类型" ); TextRender_string24(ListView.ColLeft[6],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[7],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[8],aTop,TextColor, "区域" ); TextRender_string24(ListView.ColLeft[9],aTop,TextColor, "区域" ); aCount = Loaded2.Count; aIdx = Level1.SelectedIndex; aCh = Level2.TopIndex; if(1){ for(i=0; i= aCount)return; if(1){ if((IsEditing) && (PrmEdit.SelectedCol == i) ){ aTop = ListView.ColTop[i] + TextTopOffSet; if(PrmEdit.SelectedRow == 0) aClr = clNearWhite; else aClr = clNearBlack; aType = ValueList[aIdx][aCh].eType; if(aType >30)aType =30; if(Loaded1.ChannelInCount) TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_iType[aType]); else TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_oType[aType]); if(PrmEdit.SelectedRow == 1) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[6],aTop,aClr, ValueList[aIdx][aCh].Group0 ); if(PrmEdit.SelectedRow == 2) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[7],aTop,aClr, ValueList[aIdx][aCh].Group1); if(PrmEdit.SelectedRow == 3) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[8],aTop,aClr, ValueList[aIdx][aCh].Group2 ); if(PrmEdit.SelectedRow == 4) aClr = clNearWhite; else aClr = clNearBlack; TextDigitRender3Right24(ListView.ColLeft[9],aTop,aClr, ValueList[aIdx][aCh].Group3 ); }else{ aTop = ListView.ColTop[i] + TextTopOffSet; if(Loaded1.ChannelInCount) TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_iType[ValueList[aIdx][aCh].eType]); else TextRender_string24(ListView.ColLeft[5],aTop,aClr, StrAssign_oType[ValueList[aIdx][aCh].eType]); TextDigitRender3Right24(ListView.ColLeft[6],aTop,clNearBlack, ValueList[aIdx][aCh].Group0 ); TextDigitRender3Right24(ListView.ColLeft[7],aTop,clNearBlack, ValueList[aIdx][aCh].Group1 ); TextDigitRender3Right24(ListView.ColLeft[8],aTop,clNearBlack, ValueList[aIdx][aCh].Group2); TextDigitRender3Right24(ListView.ColLeft[9],aTop,clNearBlack, ValueList[aIdx][aCh].Group3); } } aCh++; } } } //_____________________________________________________________________________________________________________________________ TGuiMsgReturn TIoPadDefine::EpKeyIn(unsigned char aKey) { TGuiMsgReturn aMsg = guiMsgNone; unsigned char aP0,aP1,Updata; unsigned char x,y,aCh; Updata = 0; if(aKey == VK_LEFT){ if(IsEditing){ if(PrmEdit.SelectedRow>0){ PrmEdit.SelectedRow--; if(CtlLevel == 1){ RenderEpPrm(); }else if(CtlLevel == 2){ RenderEpChannelPrm(); } }else{ IsEditing = 0; IsModifing = 0; if(CtlLevel == 1){ RenderEp(); RenderEpPrm(); }else if(CtlLevel == 2){ RenderEpChannel(); RenderEpChannelPrm(); } } }else{ if(CtlLevel >0){ if(CtlLevel == 1){ CtlLevel = 0; RenderPort(); RenderEp(); RenderEpChannel(); RenderEpChannelPrm(); IsWarningSave =1; RenderWarningSave(); }else{ CtlLevel--; if(CtlLevel == 0){ }else if(CtlLevel == 1){ LoadEp(); RenderEp(); RenderEpPrm(); }else if(CtlLevel == 2){ RenderEpChannel(); RenderEpChannelPrm(); }else{ CtlLevel =0; LoadPort(); RenderPort(); RenderEp(); RenderEpChannel(); RenderEpChannelPrm(); } } } } }else if(aKey == VK_RIGHT){ if(IsEditing){ if(PrmEdit.SelectedRow<4){ PrmEdit.SelectedRow++; if(CtlLevel == 1){ RenderEp(); RenderEpPrm(); }else if(CtlLevel == 2){ RenderEpChannel(); RenderEpChannelPrm(); } } }else{ if(CtlLevel == 0){ CtlLevel++; LoadEp(); LoadEpChannel(); RenderPort(); RenderEp(); RenderEpPrm(); }else if(CtlLevel == 1){ aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; if(aP0 && aP1 ){ aP0--; aP1--; Level1.CurrentType = EpDev[aP0][aP1].fData.Split.dType; if( Loaded1.ChannelCount[Level1.SelectedIndex] >1 ){ CtlLevel ++; LoadEpChannel(); RenderEp(); Level2.TopIndex = 0; Level2.SelectedIndex = 0; Level2.SelectedCol = 0; RenderEpChannel(); RenderEpChannelPrm(); }else{ IsEditing = 1; PrmEdit.SelectedCol = Level1.SelectedCol; PrmEdit.SelectedRow = 0; RenderEp(); RenderEpPrm(); } } }else if(CtlLevel == 2){ IsEditing = 1; PrmEdit.SelectedCol = Level2.SelectedCol; PrmEdit.SelectedRow = 0; RenderEp(); RenderEpChannel(); RenderEpChannelPrm(); } } }else if(aKey == VK_UP){ if(IsEditing){ if(IsModifing){ if(CtlLevel == 1){ y = Level1.SelectedIndex; aCh = 0; }else if(CtlLevel == 2){ y = Level1.SelectedIndex; aCh = Level2.SelectedIndex; } x = PrmEdit.SelectedRow; if(x==0){ if(ValueList[y][aCh].eType < 30)ValueList[y][aCh].eType++; }else if(x==1){ ValueList[y][aCh].Group0++; }else if(x==2){ ValueList[y][aCh].Group1++; }else if(x==3){ ValueList[y][aCh].Group2++; }else if(x==4){ ValueList[y][aCh].Group3++; } if(CtlLevel == 1){ RenderEpPrm(); }else if(CtlLevel == 2){ RenderEpChannelPrm(); } }else{ if(CtlLevel ==1){ if(Level1.SelectedCol >0){ Level1.SelectedCol--; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; }else{ if(Level1.TopIndex >0){ Level1.TopIndex --; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderEp(); RenderEpPrm(); } }else if(CtlLevel ==2){ if(Level2.SelectedCol >0){ Level2.SelectedCol--; Level2.SelectedIndex--; RenderEpChannel(); PrmEdit.SelectedCol = Level2.SelectedCol; PrmEdit.SelectedIndex = Level2.SelectedIndex; RenderEpChannelPrm(); } } } }else{ if(CtlLevel == 0){ //ListLineCnt if(Level0.SelectedCol >0){ Level0.SelectedCol--; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadEp(); LoadEpChannel(); RenderPort(); RenderEp(); RenderEpPrm(); }else{ if(Level0.TopIndex >0){ Level0.TopIndex --; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadEp(); LoadEpChannel(); RenderPort(); RenderEp(); RenderEpPrm(); } } }else if(CtlLevel == 1){ if(Level1.SelectedCol >0){ Level1.SelectedCol--; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; }else{ if(Level1.TopIndex >0){ Level1.TopIndex --; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderEp(); RenderEpPrm(); } }else if(CtlLevel == 2){ if(Level2.SelectedCol >0){ Level2.SelectedCol--; Level2.SelectedIndex--; RenderEpChannel(); } } } }else if(aKey == VK_DOWN){ if(IsEditing){ if(IsModifing){ if(CtlLevel == 1){ y = Level1.SelectedIndex; aCh = 0; }else if(CtlLevel == 2){ y = Level1.SelectedIndex; aCh = Level2.SelectedIndex; } x = PrmEdit.SelectedRow; if(x==0){ if(ValueList[y][aCh].eType >0)ValueList[y][aCh].eType--; }else if(x==1){ ValueList[y][aCh].Group0--; }else if(x==2){ ValueList[y][aCh].Group1--; }else if(x==3){ ValueList[y][aCh].Group2--; }else if(x==4){ ValueList[y][aCh].Group3--; } if(CtlLevel == 1){ RenderEpPrm(); }else if(CtlLevel == 2){ RenderEpChannelPrm(); } }else{ if(CtlLevel == 1){ if(Level1.SelectedCol < (ListLineCnt-1)){ if( (Level1.TopIndex + Level1.SelectedCol) < (Loaded1.Count -1) ){ Level1.SelectedCol++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } }else{ if( (Level1.TopIndex + ListLineCnt) < Loaded1.Count){ Level1.TopIndex ++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; PrmEdit.TopIndex = Level1.TopIndex; PrmEdit.SelectedIndex = Level1.SelectedIndex; PrmEdit.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderEp(); RenderEpPrm(); } }else if(CtlLevel == 2){ if( (Level2.SelectedCol < (Loaded2.Count-1)) && (Level2.SelectedCol < 3) ){ Level2.SelectedCol++; Level2.SelectedIndex++; RenderEpChannel(); PrmEdit.SelectedCol = Level2.SelectedCol; PrmEdit.SelectedIndex = Level2.SelectedIndex; RenderEpChannelPrm(); } } } }else{ if(CtlLevel == 0){ //ListLineCnt if(Level0.SelectedCol < (ListLineCnt-1)){ if( (Level0.TopIndex + Level0.SelectedCol) < (Loaded0.Count -1) ){ Level0.SelectedCol++; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadEp(); RenderPort(); RenderEp(); RenderEpPrm(); } }else{ if( (Level0.TopIndex + ListLineCnt) < Loaded0.Count){ Level0.TopIndex ++; Level0.SelectedIndex = Level0.TopIndex + Level0.SelectedCol; Level1.SelectedCol =0; Level1.SelectedIndex = 0; Level1.SelectedIndex = 0; Level2.SelectedCol =0; Level2.SelectedIndex = 0; Level2.SelectedIndex = 0; LoadEp(); RenderPort(); RenderEp(); RenderEpPrm(); } } }else if(CtlLevel == 1){ if(Level1.SelectedCol < (ListLineCnt-1)){ if( (Level1.TopIndex + Level1.SelectedCol) < (Loaded1.Count -1) ){ Level1.SelectedCol++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } }else{ if( (Level1.TopIndex + ListLineCnt) < Loaded1.Count){ Level1.TopIndex ++; Level1.SelectedIndex = Level1.TopIndex + Level1.SelectedCol; Level2.TopIndex = Level1.TopIndex; Level2.SelectedIndex = Level1.SelectedIndex; Level2.SelectedCol = Level1.SelectedCol; aP0 = Loaded0.ItemsPath[Level0.SelectedIndex]; aP1 = Loaded1.ItemsPath[Level1.SelectedIndex]; Updata = 1; } } if(Updata){ RenderEp(); RenderEpPrm(); } } if(CtlLevel == 2){ if( (Level2.SelectedCol < (Loaded2.Count-1)) && (Level2.SelectedCol < 3) ){ Level2.SelectedCol++; Level2.SelectedIndex++; RenderEpChannel(); } } } }else if(aKey == VK_F1){ //Go Modify if(IsEditing){ if(IsModifing)IsModifing =0; else IsModifing = 1; if(CtlLevel == 1){ RenderEpPrm(); }else if(CtlLevel == 2){ RenderEpChannelPrm(); } } }else if(aKey == VK_TAB){ if(IsWarningSave){ //User Not Save Here IsWarningSave = 0; CtlLevel = 0; RenderPort(); RenderEp(); } } if(aKey == VK_EXECUTE){ //Save Data Here if(IsWarningSave){ //Save Here if(IsReqReturn){ //Save and Return aMsg = guiMsgReturn; }else{ IsWarningSave = 0; CtlLevel = 0; RenderPort(); RenderEp(); if(CtlLevel == 2){ RenderEpChannel(); RenderEpChannelPrm(); }else{ RenderEpPrm(); } } }else{ //Ask if Save Here IsWarningSave = 1; RenderWarningSave(); } }else if(aKey == VK_RETURN){ if(IsWarningSave == 0){ IsWarningSave = 1; RenderWarningSave(); IsReqReturn = 1; }else{ IsWarningSave = 0; if(IsReqReturn){ aMsg = guiMsgReturn; }else{ if(CtlLevel == 2){ RenderEpChannel(); RenderEpChannelPrm(); }else{ RenderEp(); RenderEpPrm(); } } } } return aMsg; } TGuiMsgReturn TIoPadDefine::KeyIn(unsigned char aKey) { int ind,i,aIndex; TGuiMsgReturn aMsg = guiMsgNone; //Up or Down One Index___________________ if(ParentType == 0){ //dgTYPE_HAND_CTL aMsg = HandCtlKeyIn(aKey); }else if(ParentType == 1){ //dgTYPE_DIRECT_CTL aMsg = DirectCtlKeyIn(aKey); }else if(ParentType == 2){ //EpDev aMsg = EpKeyIn(aKey); } if(aKey == VK_EXECUTE){ //Open path Device }else if(aKey == VK_F2){ }else if(aKey == VK_RETURN){ } return aMsg; }