asp label access

TeeChart for ActiveX, COM and ASP
Post Reply
adenin
Newbie
Newbie
Posts: 33
Joined: Mon Jun 11, 2007 12:00 am

asp label access

Post by adenin » Thu Mar 06, 2008 8:40 am

Hello,

pls is it possible to access label set up with:

TChartSpeed.Series(1).AddXY 92 , 1001.07 , "sample label" , RGB(255,0,0)

in mouse event:

Sub TChartSpeed_OnMouseMove(Shift, X, Y)

???

I would like to display this label with yvalues in rectangle with annotation tool.
thanks

Yeray
Site Admin
Site Admin
Posts: 9614
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Post by Yeray » Thu Mar 06, 2008 8:57 am

Hi adenin,

If I understand well, you are trying to achieve something very similar than All Features/Tools/Annotation/Annotation Callout example in the new features demo, available at TeeChart's program group.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

adenin
Newbie
Newbie
Posts: 33
Joined: Mon Jun 11, 2007 12:00 am

Post by adenin » Thu Mar 06, 2008 9:14 am

yes, something like that;

I have already found it:

Sub TChartSpeed_OnMouseMove(Shift, X, Y)

mouseOverIndex = TChartSpeed.Series(1).Clicked(X, Y)

If mouseOverIndex <> -1 Then
TChartSpeed.Tools.Items(0).Active=True
TChartSpeed.Tools.Items(0).asAnnotation.Text = "value:" & TChartSpeed.Series(1).YValues.Value(mouseOverIndex) & Chr(13) & "label:" & TChartSpeed.Series(1).PointLabel(mouseOverIndex)
...

Yeray
Site Admin
Site Admin
Posts: 9614
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Post by Yeray » Thu Mar 06, 2008 9:18 am

Hi adenin,

I've made an example using two functions in the demo I've pointed to you before. Note that for me, the series index is 0, and for you is 1.

Code: Select all

Private Sub Form_Load()
  With TChart1
    .Aspect.View3D = False
    .Legend.Visible = False
    .AddSeries scPoint
    
    For i = 0 To 49
      .Series(0).AddXY i, Rnd * 1000, "Point number " + Str$(i), RGB(255, 0, 0)
    Next i
    
    .Axis.Bottom.Labels.Style = talValue
    
    With .Tools
      .Add tcAnnotate
      
      With .Items(0).asAnnotation
        .Left = 300
        .Top = 15
        .Text = TChart1.Series(0).PointLabel(0)
      End With
    End With
  End With
End Sub

' Returns Series point index that is nearest to xy position.
Function NearestPoint(ByVal X As Long, ByVal Y As Long) As Long
Dim Difference As Long, tmpDif As Long, i As Long, res As Long
  res = -1
  Difference = -1
  For i = 0 To TChart1.Series(0).Count - 1
    tmpDif = Round(TeeDistance(TChart1.Series(0).CalcXPos(i) - X, _
                               TChart1.Series(0).CalcYPos(i) - Y))

    If (Difference = -1) Or (tmpDif < Difference) Then
      Difference = tmpDif
      res = i
    End If
  Next i
  NearestPoint = res
End Function

Function TeeDistance(ByVal X As Integer, ByVal Y As Integer) As Double
  TeeDistance = Sqr(X ^ 2 + Y ^ 2)
End Function

Private Sub TChart1_OnMouseMove(ByVal Shift As TeeChart.EShiftState, ByVal X As Long, ByVal Y As Long)
Dim i As Integer
  i = NearestPoint(X, Y)
  TChart1.Tools.Items(0).asAnnotation.Text = TChart1.Series(0).PointLabel(i)
End Sub
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

Post Reply