C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Отслеживание координат нажатия мыши, на Tchart
** Николай
Отправлено: 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));};
};


Вернуться в Вопросы программирования в C++Builder