** Николай |
Отправлено: 17.01.2006, 15:10 |
|
Не зарегистрирован
|
Помогите, необходимо отследить координаты нажатия мыши на компоненте Tchart.
Есть собственно сам Tchart и на нем 5 серий. Так вот необходимо при нажатии получить координаты x и y точки в которой произвели нажатие... |
|
** Николай |
Отправлено: 17.01.2006, 15:12 |
|
Не зарегистрирован
|
Причем координаты не в пикселах, а именно Tchart`ских... |
|
Grigoriy |
Отправлено: 19.01.2006, 02:13 |
|
Мастер участка
Группа: Участник
Сообщений: 381
|
Это можно сделать с помощью методов
CODE |
int n;
Chart1->Series[n]->XScreenToValue(X));
Chart1->Series[n]->YScreenToValue(Y));
|
Например так.
Сначала передзапуском программы редактируем TChart (добавляем серии). А затем...
CODE |
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for (int k=0;k<21;k++){Chart1->Series[0]->AddXY(k,sin(k*3.1415/10),"",clRed);
}};
//---------------------------------------------------------------------------
void __fastcall TForm1::Chart1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
int f;
double ff;
if (Chart1->SeriesCount()){
Edit1->Text=FloatToStr(Chart1->Series[0]->XScreenToValue(X));
Edit2->Text=FloatToStr(Chart1->Series[0]->YScreenToValue(Y));};
};
|
|
|