Series에 값을 추가하면(X위치 또는 Y위치) Series가 해당 값을 가지고 있게 됩니다. 벡터같은거를 내부적으로 가지고 있는거 같아요..
이 값을 참조할 경우 2가지 방법이 있는데요 Series의 Parent인 Chart를 이용한 방법과 직접 Series를 이용한 방법이 있습니다. 전 Chart를 이용한것이 아닌 직접 Series에 접근해서 Series의 YValues->Value[index]를 이용해서 값을 얻곤 했습니다.
예를 들면
Chart에 Series를 하나 추가했고 그것을 SeriesAdd라고 하고 값을 추가했다면.. 이 Series의 값을 얻는 방법은
1. Chart->Series[0]->YValues->Value[index]
2. SeriesAdd->YValues->Value[index]
가 있습니다.
전 2번째 방법을 사용했었구요... 1번째 방법으로 해도 틀릴것은 없다고 보는데요...
결과가 이상하게 나오신다니... 2번째 방법으로 직접 Series에 접근해서 값을 얻어보세요...
임승욱 님이 쓰신 글 :
: YScreenToValue 함수 쓰기전에 참고로 보여주신 것을 보고
: Chart1->Series[0]->YValues->Value[index] 를 쓴 적있었는데 엉뚱한 값이 나오더군요
: 그래서 이번에는
: Chart1->Series[0]->YValue[index] 를 쓰니깐 제대로 나오네요. 왜 그럴까요? ^^
:
: 참고로 TChartGrid를 사용하면 Value 값들을 볼수 있습니다.
: ChartGrid의 chart 를 사용하고 있는 Chart1에 맞추면 화면에서 chartgrid를 볼수 있습니다.
:
: 이용태님 답변 감사드립니다.
:
:
: 이용태 님이 쓰신 글 :
: :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=722
: :
: : 위에 링크 참조하세요.. TeeChart에 관한 좌표 구하는 방법이 설명되어 있습니다.
: :
: :
: :
: :
: : 임승욱 님이 쓰신 글 :
: : : 밑의 소스처럼 chart 상에 두개의 x축을 지정하고 그 x축에 대한 y 값을 구하려고
: : : YScreenToValue함수를 써서 y값이 나오게 하려고 하는데 엉뚱한 값이 나오네요.
: : : 혹시 다른 방법으로 y값을 나오게 할 수 있을까요?
: : :
: : : 그리고 한가지 더 !!
: : : chart 상에 canvas로 그려진 2개의 직선들을 어떤 방법으로 초기화(지울 수) 할 수 있을까요?
: : :
: : : btnCalculatorClick(TObject *Sender)
: : : {
: : : float iTime1, iTime2, iPos1,iPos2,X, Y;
: : :
: : : iTime1 = StrToFloat(Edit1->Text);
: : : iTime2 = StrToFloat(Edit2->Text);
: : :
: : : X = Chart1->BottomAxis->CalcXPosValue(iTime1);
: : : Y = Chart1->BottomAxis->CalcXPosValue(iTime2);
: : :
: : : vtnV1->Text = Chart1->Series[0]->YScreenToValue(X);
: : :
: : : //vtnV2->Text
: : :
: : : if ((X >= Chart1->ChartRect.Left) && (X <= Chart1->ChartRect.Right)){
: : : Chart1->Canvas->MoveTo(X, Chart1->ChartRect.Bottom);
: : : Chart1->Canvas->LineTo(X, Chart1->ChartRect.Top);
: : : }
: : : if ((Y >= Chart1->ChartRect.Left) && (Y <= Chart1->ChartRect.Right)){
: : : Chart1->Canvas->MoveTo(Y, Chart1->ChartRect.Bottom);
: : : Chart1->Canvas->LineTo(Y, Chart1->ChartRect.Top);
: : : }
: : : }