개발환경: C++ Builder XE5
TeeChart를 이용하여 Chart를 그리는데,
Legend가 이상하게 나옵니다.
Series가 3개 있고,
Series를 모두 표기할 때는 Legend(범례)가 잘나오는데,,
Series를 하나만 표기할 때는 Legend에 Chart에 사용된 값(Value값)이 출력됩니다.
코드는 아래와 같은데요..
Series 하나만 나올 때.. Legend에 이 값이 수온, DO, pH 값이다라라고 안내만 해주려고 하는데..
어디가 문제인 지 찾지를 못하겠습니다.
고수님들의 도움을..
감사합니다.
// Series Clear ---------------------------------------------------------
Series1->Clear(); //표층
Series2->Clear(); //중층
Series3->Clear(); //하층
int ChartCount = 3;
// 상황에 따라 Series를 감춘다.
if ( SiteID == "A" || SiteID == "B" ) {
if ( enTempSaliFlag == enTempFlag || enTempSaliFlag == enSaliFlag ) { //=> Chart 3EA
Series1->Visible = true;
Series2->Visible = true;
Series3->Visible = true;
ChartCount = 3;
} else { // enDepthFlag, enDOFlag, enPHFalg => Chart 1 EA
Series1->Visible = true;
Series2->Visible = false;
Series3->Visible = false;
ChartCount = 1;
}
} else { // Site => C, D
Series1->Visible = true;
Series2->Visible = false;
Series3->Visible = false;
ChartCount = 1;
}
//
// Chart에 값을 추가하는 로직...
// .......
Chart->Title->Caption = (enTempSaliFlag == enTempFlag) ? "수온" : \
((enTempSaliFlag == enSaliFlag ) ? "염도" : \
((enTempSaliFlag == enDepthFlag ) ? "수위" : \
((enTempSaliFlag == enDOFlag ) ? "DO" : \
((enTempSaliFlag == enPHFlag ) ? "pH" : ""))));
if ( enTempSaliFlag == enTempFlag || enTempSaliFlag == enSaliFlag ) {
Series1->LegendTitle = "표층";
Series2->LegendTitle = "중층";
Series3->LegendTitle = "하층";
} else { // Series가 하나만 있을 때 해당 범례를 표기하고 싶은데.. 이상하게 나옴(Chart의 데이터값이 출력)
Series1->LegendTitle = (enTempSaliFlag == enTempFlag) ? "수온" : \
((enTempSaliFlag == enSaliFlag ) ? "염도" : \
((enTempSaliFlag == enDepthFlag ) ? "수위" : \
((enTempSaliFlag == enDOFlag ) ? "DO" : \
((enTempSaliFlag == enPHFlag ) ? "pH" : ""))));
Series2->LegendTitle = "";
Series3->LegendTitle = "";
}
|