如何反推TLineSeries的值?? |
尚未結案
|
kaiming
一般會員 發表:6 回覆:11 積分:8 註冊:2004-03-01 發送簡訊給我 |
|
michaelhuang
一般會員 發表:2 回覆:3 積分:1 註冊:2004-05-11 發送簡訊給我 |
TColor tmp;
tmp = Chart1->BackColor;
if (tmp == clTeeColor)
tmp = clBtnFace;
Chart1->Canvas->Pen->Color = (TColor)(CrossHairColor ^ ColorToRGB(tmp)); Chart1->Canvas->Pen->Style = CrossHairStyle;
Chart1->Canvas->Pen->Mode = pmXor;
Chart1->Canvas->Pen->Width = 1;
Chart1->Canvas->MoveTo(ax,Chart1->ChartRect.Top-Chart1->Height3D);
Chart1->Canvas->LineTo(ax,Chart1->ChartRect.Bottom-Chart1->Height3D);
Chart1->Canvas->MoveTo(Chart1->ChartRect.Left Chart1->Width3D,ay);
Chart1->Canvas->LineTo(Chart1->ChartRect.Right Chart1->Width3D,ay);
} void __fastcall TMainForm::Chart1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
double tmpX,tmpY;
if (OldX != 1) {
DrawCross(OldX,OldY); // draw old crosshair
OldX = -1;
} // check if (mouse is inside Chart rectangle
if (PtInRect((RECT*)&Chart1->ChartRect, Point(X-Chart1->Width3D,Y Chart1->Height3D))) {
DrawCross(X,Y); // draw crosshair at current position
// store old position
OldX = X;
OldY = Y;
// set label text Series1->GetCursorValues(tmpX,tmpY); // <-- get values under mouse cursor
Label7->Caption = Series1->GetVertAxis->LabelValue(tmpX)
" , " Series1->GetHorizAxis->LabelValue(tmpY);
|
michaelhuang
一般會員 發表:2 回覆:3 積分:1 註冊:2004-05-11 發送簡訊給我 |
sorry上面有點錯 請參考這一個
void TCrossHairForm::DrawCross(int ax, int ay)
{
TColor tmp;
tmp = Chart1->BackColor;
if (tmp == clTeeColor)
tmp = clBtnFace;
Chart1->Canvas->Pen->Color = (TColor)(CrossHairColor ^ ColorToRGB(tmp)); Chart1->Canvas->Pen->Style = CrossHairStyle;
Chart1->Canvas->Pen->Mode = pmXor;
Chart1->Canvas->Pen->Width = 1;
Chart1->Canvas->MoveTo(ax,Chart1->ChartRect.Top-Chart1->Height3D);
Chart1->Canvas->LineTo(ax,Chart1->ChartRect.Bottom-Chart1->Height3D);
Chart1->Canvas->MoveTo(Chart1->ChartRect.Left Chart1->Width3D,ay);
Chart1->Canvas->LineTo(Chart1->ChartRect.Right Chart1->Width3D,ay);
} void __fastcall TCrossHairForm::Chart1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
double tmpX,tmpY;
if (OldX != 1) {
DrawCross(OldX,OldY); // draw old crosshair
OldX = -1;
} // check if (mouse is inside Chart rectangle
if (PtInRect((RECT*)&Chart1->ChartRect, Point(X-Chart1->Width3D,Y Chart1->Height3D))) {
DrawCross(X,Y); // draw crosshair at current position
// store old position
OldX = X;
OldY = Y;
// set label text
LineSeries1->GetCursorValues(tmpX,tmpY); // <-- get values under mouse cursor
Label1->Caption = LineSeries1->GetVertAxis->LabelValue(tmpY)
" " LineSeries1->GetHorizAxis->LabelValue(tmpX);
}
}
請在.h裏的
private: // User declarations
int OldX;
int OldY;
TColor CrossHairColor;
TPenStyle CrossHairStyle;
void DrawCross(int AX, int AY);
加入這此些宣告
|
kaiming
一般會員 發表:6 回覆:11 積分:8 註冊:2004-03-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |