0

我读过一些关于 teechart 周末问题的文章,建议是愚蠢的步骤:

  1. TChart1.Series(0).XValues.DateTime = False
  2. 使用连续数字作为 Xvalues
  3. 用日期时间替换 X 标签。

问题是:我根据日期、小时和分钟绘制实时烛台,我必须保持 TChart1.Series(0).XValues.DateTime = True

那么有什么方法可以摆脱空周末(不仅是周末,甚至一天中的某个时间,例如从 5:15 到 6:00 都需要删除),以便连续显示烛台(Xvalues 必须保持日期时间风格)?

谢谢。

(顺便说一句,我使用 Teechart2011 Eval & VB6)

4

2 回答 2

0

这里截取你的代码,我创建了一个简单的示例,在这里我似乎可以正常工作。在下面找到它:

Private Sub Form_Load() 
  Dim month, day, year, hour, minute, second, nums As Integer
  Dim tmpDate As Date
  month = 6
  day = 7
  year = 2012
  hour = 6
  minute = 15
  second = 0
  nums = 10

  TChart1.Aspect.View3D = False
  TChart1.AddSeries scCandle
  TChart1.Axis.Bottom.Labels.Angle = 90

  For i = 1 To nums
    tmpDate = (DateValue(day & "," & month & "," & year) + TimeValue(hour & ":" & minute & ":" & second))
    If Not IsWeekend(tmpDate) Then
      With TChart1.Series(0)
        .asCandle.AddCandle .Count, 5, 15, 0, 10, tmpDate, clTeeColor
      End With
    End If
    day = day + 1
  Next i
End Sub

Public Function IsWeekend(InputDate As Date) As Boolean
    Select Case Weekday(InputDate)
        Case vbSaturday, vbSunday
            IsWeekend = True
        Case Else
            IsWeekend = False
    End Select
End Function
于 2012-10-08T10:28:13.290 回答
0

TeeChart 根据关联轴上的 X 和 Y 值绘制每个点。您可以使用中断轴工具在轴上获得不连续的效果,但在水平轴上连续绘制点的最简单方法是使用连续的 X 值。因此,我建议您使用该TChart1.Series(i).asCandle.AddCandle XVal, OpenVal, HighVal, LowVal, CloseVal, Label, clTeeColor功能,即:

  • XVal: TChart1.Series(i).Count,而不是从系统检索的日期
  • 标签:从系统中检索到的日期,转换为字符串

如果这不能解决问题,因为您仍然认为您必须有 DateTime XValues,请解释原因。

于 2012-10-03T12:07:04.433 回答