소개
다운로드
온라인 설명서
주식/코인 차트
Q & A
Blog
고객지원
구매하기
Sing in
히포차트 4.3 - 실시간 차트 + 스크롤 기능 응용하기
Tweet
clomid online reviews
clomid london
bizautomation.com
clomid uk success rates
tamoxifen uk pct
buy tamoxifen pct
westshoreprimarycare.com
tamoxifen uk price
medical abortion ph
abortion pill online philippines
blog.thecraftyowl.co.uk
abortion pill philippines
buy accutane uk
accutane without side effects
blog.keylink.rs
accutane without birth control reddit
amitriptyline 10mg
amitriptyline for nerve pain
online
amitriptyline 25mg
Amitriptyline for Back Pain
amitriptyline
50mg
buy antidepressant online
sertraline online
redirect
buy sertraline
buy sertraline online
buy
sertraline
히포차트와 hScrollBar 컨트롤을 이용하여 스크롤링되는 실시간 차트를 구현하는 방법 공유합니다.
많은 프로젝트에서 사용하는 방법인데요, 폼에 히포차트와 hscrollbar 를 끌어다 놓고 스크롤바 속성 중 righttoleft 를 yes 로 수정합니다.
다음 타이머를 갖다 놓으시고 아래 샘플을 테스트 하시면 실시간과 스크롤링이 되는 예제를 확인하실 수 있습니다.
※ 본 샘플은 라이선스 인증 회원에게는 샘플 프로젝트를 별도로 제공합니다.
C#
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
Hippo;
namespace ScrollRealtimeSample
{
public
partial class Form1 : Form
{
///
/// 들어오는 모든 데이터를 보관하는 컬렉션
///
List<
SeriesItem
> items;
///
/// 한번에 몇 개의 포인트를 보여줄 것인지를 나타내는 변수
///
const int viewcount = 50;
///
/// 전체 데이터 카운트
///
int currentIndex = 0;
public
Form1()
{
InitializeComponent();
items =
new
List<
SeriesItem
>();
}
///
/// 폼 로드 - 히포차트, 타이머 초기화
///
///
///
private
void
Form1_Load(object sender, EventArgs e)
{
SeriesList sl =
new
SeriesList
();
sl.GraphArea.Grid.GridBackColor1 = Color.Black;
sl.GraphArea.Grid.GridBackColor2 = Color.Black;
sl.AxisFactor.YAxis.Line.LineColor = Color.White;
sl.AxisFactor.XAxis.Line.LineColor = Color.White;
sl.AxisFactor.YAxis.ForeColor = Color.White;
sl.AxisFactor.XAxis.ForeColor = Color.White;
sl.GraphArea.Grid.GridDirection = GridDirection.Horizontal;
Series
sr =
new
Series
();
sr.SeriesColor = Color.Lime;
sl.SeriesCollection.Add(sr);
this
.hHippoChart1.Designer.InnerBackColor = Color.Black;
this
.hHippoChart1.SeriesListDictionary.Add(sl);
this
.timer1.Interval = 30;
}
private
void
button1_Click(object sender, EventArgs e)
{
this
.timer1.Start();
}
private
void
timer1_Tick(object sender, EventArgs e)
{
Random r =
new
Random();
SeriesItem
newItem =
new
SeriesItem
(r.Next(10, 50));
newItem.Name = currentIndex.ToString();
// 데이터 저장
items.Add(newItem);
hScrollBar1.Maximum = items.Count;
hScrollBar1.LargeChange = viewcount;
// 차트 그리기
this
.DrawChart(currentIndex, viewcount + currentIndex);
if (items.Count > viewcount)
{
currentIndex++;
}
}
///
/// 차트를 그립니다.
///
///
시작 인덱스
///
마지막 인덱스
private
void
DrawChart(
int
s, int e)
{
this
.hHippoChart1.SeriesListDictionary[0].SeriesCollection[0].items.Clear();
for
(
int
i = s; i < e; i++)
{
try
{
this
.hHippoChart1.SeriesListDictionary[0].SeriesCollection[0].items.Add(items[i]);
}
catch { }
}
this
.hHippoChart1.DrawChart();
}
///
/// 스크롤 이벤트
///
///
///
private
void
hScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
int startVal = hScrollBar1.Maximum - viewcount - hScrollBar1.Value;
int EndVal = hScrollBar1.Maximum - hScrollBar1.Value;
if (startVal < 0)
{
startVal = 0;
EndVal = viewcount;
}
this
.DrawChart(startVal, EndVal);
}
}
}
VB
Imports
System.Collections.Generic
Imports
System.ComponentModel
Imports
System.Data
Imports
System.Drawing
Imports
System.Text
Imports
System.Windows.Forms
Imports
Hippo
Namespace ScrollRealtimeSample
Public Partial Class Form1
Inherits Form
```
``` 들어오는 모든 데이터를 보관하는 컬렉션
```
Private items As List(Of
SeriesItem
)
```
``` 한번에 몇 개의 포인트를 보여줄 것인지를 나타내는 변수
```
Const viewcount As Integer = 50
```
``` 전체 데이터 카운트
```
Private currentIndex As Integer = 0
Public Sub New()
InitializeComponent()
items = New List(Of
SeriesItem
)()
End Sub
```
``` 폼 로드 - 히포차트, 타이머 초기화
```
```
```
Private Sub Form1_Load(sender As Object, e As EventArgs)
Dim sl As
New
.
SeriesList
()
sl.GraphArea.Grid.GridBackColor1 = Color.Black
sl.GraphArea.Grid.GridBackColor2 = Color.Black
sl.AxisFactor.YAxis.Line.LineColor = Color.White
sl.AxisFactor.XAxis.Line.LineColor = Color.White
sl.AxisFactor.YAxis.ForeColor = Color.White
sl.AxisFactor.XAxis.ForeColor = Color.White
sl.GraphArea.Grid.GridDirection = GridDirection.Horizontal
Dim sr As
New
.
Series
()
sr.SeriesColor = Color.Lime
sl.SeriesCollection.Add(sr)
Me
.hHippoChart1.Designer.InnerBackColor = Color.Black
Me
.hHippoChart1.SeriesListDictionary.Add(sl)
Me
.timer1.Interval = 30
End Sub
Private Sub button1_Click(sender As Object, e As EventArgs)
Me
.timer1.Start()
End Sub
Private Sub timer1_Tick(sender As Object, e As EventArgs)
Dim r As
New
. Random()
Dim newItem As
New
.
SeriesItem
(r.[Next](10, 50))
newItem.Name = currentIndex.ToString()
` 데이터 저장
items.Add(newItem)
hScrollBar1.Maximum = items.Count
hScrollBar1.LargeChange = viewcount
` 차트 그리기
Me
.DrawChart(currentIndex, viewcount + currentIndex)
If items.Count > viewcount Then
currentIndex += 1
End If
End Sub
```
``` 차트를 그립니다.
```
```
시작 인덱스
```
마지막 인덱스
Private Sub DrawChart(s As Integer, e As Integer)
Me
.hHippoChart1.SeriesListDictionary(0).SeriesCollection(0).items.Clear()
For i As Integer = s To e - 1
Try
Me
.hHippoChart1.SeriesListDictionary(0).SeriesCollection(0).items.Add(items(i))
Catch
End Try
Next
Me
.hHippoChart1.DrawChart()
End Sub
```
``` 스크롤 이벤트
```
```
```
Private Sub hScrollBar1_Scroll(sender As Object, e As ScrollEventArgs)
Dim startVal As Integer = hScrollBar1.Maximum - viewcount - hScrollBar1.Value
Dim EndVal As Integer = hScrollBar1.Maximum - hScrollBar1.Value
If startVal < 0 Then
startVal = 0
EndVal = viewcount
End If
Me
.DrawChart(startVal, EndVal)
End Sub
End Class
End Namespace
※ 히포차트 샘플 코드는 버전별로 상이한 결과를 나타낼 수 있습니다.
이 코드 관련 문의 사항은 페이스북 리플을 달아주시거나 아래 이메일로 이 페이지 주소와 함께 문의주세요.
helpdesk@hippochart.com
Copyright © 2009-2024 히포소프트(Hipposoft) All Rights Reserved.