CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - TChart i odczytywanie wartości z osi X i Y

TChart i odczytywanie wartości z osi X i Y

dział ogólny

TChart i odczytywanie wartości z osi X i Y

Nowy postprzez kriss » środa, 15 grudnia 2010, 20:29

Witam,

Mam pytanie, w jaki sposób mogę pobrać wartości z osi X i Y, z komponentu TChart, poprzez kliknięcie myszką na wyrysowany wykres? Chciałbym użyć tego dla zdarzenia OnMouseDown i wrzucić odczytane wartości X i Y do zmiennych.
Avatar użytkownika
kriss
Bladawiec
Bladawiec
 
Posty: 20
Dołączył(a): niedziela, 12 grudnia 2010, 21:28
Podziękował : 4
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Ultimate x64
Kompilator: C++ Builder 6 Enterprise
Gadu Gadu: 0
    Windows 7Firefox

Re: TChart i odczytywanie wartości z osi X i Y

Nowy postprzez Cyfrowy Baron » środa, 15 grudnia 2010, 21:17

Mam pytanie, w jaki sposób mogę pobrać wartości z osi X i Y,


Chcesz pobrać wartość serii, czyli punktu wykresu, czy wartość z osi?
Jeżeli wartość serii, to masz zdarzenie OnClickSeries:

KOD cpp:     UKRYJ  
void __fastcall TForm1::Chart1ClickSeries(TCustomChart *Sender, TChartSeries *Series,
          int ValueIndex, TMouseButton Button, TShiftState Shift, int X,
          int Y)
{
  int yValue = Series->GetOriginValue(ValueIndex);

  int xValue = Series->GetCursorValueIndex(); // lub xValue = ValueIndex
}

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
kriss
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: TChart i odczytywanie wartości z osi X i Y

Nowy postprzez kriss » środa, 15 grudnia 2010, 21:39

Wartości z osi :) np. na Osi X mam liczby które wyrażają czas i chciałbym poprzez kliknięcie na wykres wyciągnąć tę wartość.
Avatar użytkownika
kriss
Bladawiec
Bladawiec
 
Posty: 20
Dołączył(a): niedziela, 12 grudnia 2010, 21:28
Podziękował : 4
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Ultimate x64
Kompilator: C++ Builder 6 Enterprise
Gadu Gadu: 0
    Windows 7Firefox

Re: TChart i odczytywanie wartości z osi X i Y

Nowy postprzez Cyfrowy Baron » środa, 15 grudnia 2010, 21:43

Klikając na serii (kod podałem wcześniej) otrzymujesz wszak wartości z osi X i Y.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: TChart i odczytywanie wartości z osi X i Y

Nowy postprzez kriss » środa, 15 grudnia 2010, 22:16

Hmm jednak wartości X sczytane z wykresu nie są takie jak na osi X. Przykładowo jak kliknę na wykresie gdzie na osi X jest wartość załóżmy 2156800, a wartość odczytana poprzez onClickSeries to np. 16851. Ten kod odczytuje chyba kolejny element serii na wykresie, a nie jego wartość...

Rozwiązałem ten problem w taki sposób, że po prostu tę liczbę odczytaną z wykresu wymnożyłem przez stałą, by wynik był taki jak na osi ;)
Avatar użytkownika
kriss
Bladawiec
Bladawiec
 
Posty: 20
Dołączył(a): niedziela, 12 grudnia 2010, 21:28
Podziękował : 4
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Ultimate x64
Kompilator: C++ Builder 6 Enterprise
Gadu Gadu: 0
    Windows 7Firefox

Re: TChart i odczytywanie wartości z osi X i Y

Nowy postprzez Cyfrowy Baron » czwartek, 16 grudnia 2010, 12:05

Komponent oferuje zdarzenie OnClickAxis, można z jego pomocą pobrać wartość z jednej osi:

KOD cpp:     UKRYJ  
void __fastcall TForm1::Chart1ClickAxis(TCustomChart *Sender, TChartAxis *Axis,
          TMouseButton Button, TShiftState Shift, int X, int Y)
{
  if(!Axis->Horizontal)
  {
   Label1->Caption =  (String)Axis->CalcPosPoint(Y);
  }
  else
  {
   Label1->Caption =  (String)Axis->CalcPosPoint(X);
  }
}
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości