• Status: Solved
• Priority: Medium
• Security: Public
• Views: 359

# PaulHews

PaulHews
I would be grateful for that code on graphing a constant stream of  numbers into a cardiac type graph. Incorporating pic.line etc and a 10point margin either side of the incoming values
I have searched frantically for your last posting on the subject but alas no joy.
0
mishbal
• 4
• 4
1 Solution

Commented:
mishbal, this is not paul's example but it may be of interest to you. Just place a picture box on a form and a command button, copy this code, run and click the button, the trace will run across the picture box. Click the button again to stop it.

Private Sub Command4_Click()
Static blnContinue As Boolean
If blnContinue Then
blnContinue = False
Else
blnContinue = True
End If
Dim aryPoints() As Long
Picture1.ScaleMode = 3
ReDim aryPoints(Picture1.ScaleWidth)
aryPoints(UBound(aryPoints)) = Picture1.ScaleHeight / 2
Do
intDelta = IIf(Rnd() * 100 > 50, 1, -1)
For intPoint = LBound(aryPoints) + 1 To UBound(aryPoints)
Picture1.PSet (intPoint, aryPoints(intPoint - 1)), Picture1.BackColor
aryPoints(intPoint - 1) = aryPoints(intPoint)
Picture1.PSet (intPoint, aryPoints(intPoint - 1)), vbBlue
Next
aryPoints(UBound(aryPoints)) = aryPoints(UBound(aryPoints) - 1) + intDelta
DoEvents
Loop Until blnContinue = False
End Sub
0

Author Commented:
TimCottee
please forgive our ignorance but where do we input our figures which incidently fluctuate between 1 and 9?
0

Commented:
mishbal, here is a slightly different version which may be more what you need: The button and the timer are for demonstration purposes. Essentially you just need the AddData Sub. Paste a picture box on the form and away it goes. You need to replace the timer event call to AddData with something which passes your values instead. It may need a bit more modification but I can help you with that if I know a bit more about what you are trying to do.

Private Sub Command4_Click()
Static blnContinue As Boolean
If blnContinue Then
blnContinue = False
Else
blnContinue = True
End If
Timer1.Enabled = blnContinue
End Sub

Private Sub AddData(ByRef Chart As PictureBox, ByVal Value As Double)
Static dblLastPoint As Double
Static aryPoints() As Double
Dim dblNewPoint As Double
ReDim Preserve aryPoints(Chart.ScaleWidth / 10)
For intPoint = LBound(aryPoints) + 1 To UBound(aryPoints)
Chart.Line ((intPoint - 1) * 10, aryPoints(intPoint - 1))-(intPoint * 10, aryPoints(intPoint)), Chart.BackColor
aryPoints(intPoint - 1) = aryPoints(intPoint)
Next
dblNewPoint = Value * (Chart.ScaleHeight / 10)
aryPoints(UBound(aryPoints)) = dblNewPoint
For intPoint = LBound(aryPoints) + 1 To UBound(aryPoints)
Chart.Line ((intPoint - 1) * 10, aryPoints(intPoint - 1))-(intPoint * 10, aryPoints(intPoint)), vbBlue
Next
dblLastPoint = dblNewPoint
DoEvents
End Sub

Private Sub Timer1_Timer()
AddData Picture1, (Rnd() * 9) + 1
End Sub
0

Author Commented:
THAT'L DO FOR ME MR COTTEE
0

Commented:
Shall I propose an answer to this or will you accept my comment?
0

Author Commented:
yes that concludes it TimCottee
you have provided what i want
i have no points left
if you require some then allow me to inform my colleague to imburse you
mishbal
0

Commented:
Just accept my answer and all will be well, the 275 you have assigned to this question is plenty. Glad to be of help.
0

Author Commented:
Thanks TimCottee
0

## Featured Post

• 4
• 4
Tackle projects and never again get stuck behind a technical roadblock.