Page 1 of 1
Como puedo marcar en el axis derecho el valor actual
Posted: Mon Jun 16, 2008 10:22 am
by 15047158
Quisiera poder marcar en el axis derecho el valor actual en tiempo real que me esta entrando para grafiar... y quisiera poder tener un ticker o un cuadrado con el valor en el que se encuentra en el momento.. siguiento el axis... para poder informar del valor actual que se encuentra en tiempo real... pero no encuentro ninguna funcion para poder señalizarlo.
Os agradeceria que me pudierais decir como.
Gracias de antemano... y perdonar por ser tan pesado... pero no encuentro las funciones... y voy super retrasado en el projecto... y al final me cortaran la cabeza.
Se me olvidaba lo estoy programando en Visual Basic.
Un saludo
Jordi Mesa
Posted: Mon Jun 16, 2008 10:39 am
by narcis
Hola Jordi,
La forma más fácil creo que és utilizar el evento OnGetSeriesPointerStyle:
Code: Select all
Private Sub Form_Load()
TChart1.Aspect.View3D = False
TChart1.AddSeries scLine
TChart1.Series(0).asLine.Pointer.Visible = True
TChart1.Series(0).VerticalAxis = aBothVertAxis
End Sub
Private Sub TChart1_OnGetSeriesPointerStyle(ByVal SeriesIndex As Long, ByVal ValueIndex As Long, AStyle As TeeChart.EPointerStyle)
If ValueIndex = TChart1.Series(0).Count - 1 Then
AStyle = psRectangle
Else
AStyle = psNothing
End If
End Sub
Private Sub Timer1_Timer()
TChart1.Series(0).Add Rnd, "", clTeeColor
End Sub
Otra alternative seria dibujar directamente sobre el canvas del gráfico:
Code: Select all
Private Sub Form_Load()
TChart1.Aspect.View3D = False
TChart1.AddSeries scLine
End Sub
Private Sub TChart1_OnAfterDraw()
If TChart1.Series(0).Count > 0 Then
W = 6
Left = TChart1.Axis.Bottom.IEndPos - (W / 2)
Top = TChart1.Series(0).CalcYPos(TChart1.Series(0).Count - 1) - (W / 2)
TChart1.Canvas.Brush.Color = TChart1.Series(0).Color
TChart1.Canvas.Rectangle Left, Top, Left + W, Top + W
End If
End Sub
Private Sub Timer1_Timer()
TChart1.Series(0).Add Rnd, "", clTeeColor
End Sub
Gracias de antemano... y perdonar por ser tan pesado... pero no encuentro las funciones... y voy super retrasado en el projecto... y al final me cortaran la cabeza.
Tranquilo! Suerte en tu proyecto, esperemos que esto no ocurra
.
Me explique mal
Posted: Tue Jun 17, 2008 9:09 am
by 15047158
Me explique mal.... lo que yo quiero hacer es poder poner el valor actual del axis derecho dentro de un cuadrado, sobre el axis.
Esto es para indicar el valor de la bolsa en ese momento sobre el axis... Es el tipico cuadro amarillo que pone el valor actual... y que se mueve por el axis dependiendo del valor.
Gracias de antemano... y perdonar por no explicarme bien la primera vez
Jordi
Posted: Tue Jun 17, 2008 10:01 am
by yeray
Hola Jordi,
Creo que lo que quieres hacer es algo asi:
Code: Select all
Private Sub Form_Load()
Timer1.Enabled = True
TChart1.Aspect.View3D = False
TChart1.AddSeries scLine
TChart1.Tools.Add tcAnnotate
TChart1.Series(0).asLine.Pointer.Visible = True
TChart1.Series(0).VerticalAxis = aBothVertAxis
TChart1.Axis.Right.PositionUnits = puPixels
End Sub
Private Sub TChart1_OnGetSeriesPointerStyle(ByVal SeriesIndex As Long, ByVal ValueIndex As Long, AStyle As TeeChart.EPointerStyle)
With TChart1.Tools.Items(0).asAnnotation
If ValueIndex = TChart1.Series(0).Count - 1 Then
.Text = Str$(TChart1.Series(0).YValues.Value(ValueIndex))
.Top = TChart1.Series(0).CalcYPos(ValueIndex)
.Left = TChart1.Axis.Right.Position
End If
End With
End Sub
Private Sub Timer1_Timer()
TChart1.Series(0).Add Rnd, "", clTeeColor
End Sub
Ah, te recomiendo que mires las propiedades de la AnnotationTool para que veas las posibilidades que tiene (color, letra, flecha, cuadro,...)