Hallo zusammen,
ich bin neu im forum und hab ein kleines problem mit der picturebox. ich hab programmiererfahrung in diversen sprachen, aber in vb hab ich noch nicht wirklich so richtig viel gemacht.
ich erklär mal kurz was ich machen will.
also ich hab ein programm geschrieben, dass von einem oszi den screen ausliest. die daten die ich krieg kann ich in einer picturebox schön visualisieren.
nun wollte ich auch das bekannte 10x10 gitter eines scopes in meiner picturebox haben. das war auch kein ding. aber das programm greift den oszi screen sagen 2000x ab, d.h. das gitter in der picturebox soll erhalten bleiben, aber nur die daten sollen refresht werden.
und da liegt nun das problem. ich kann die daten refreshen, aber das gitter wird nur zur hälfte dargestellt. hat irgendjemand eine idee? ich wär dankbar.
ich poste mal den code (achja, statt der daten hab ich mal ne kryptisch, varierende sinusfunktion integriert
schon mal danke
Option Explicit
Dim PWidth, PHeight, I, k, m, r, XLabeli, XLabelii, XLabeliii, htime As Integer
Dim StepW, StepH, sumVector(1000) As Double
Private Const Pi As Double = 3.14159265358979
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Picture1_Paint()
htime = 0.5
XLabeli = 0
XLabelii = 5 * htime
XLabeliii = 10 * htime
PWidth = Picture1.ScaleWidth
PHeight = Picture1.ScaleHeight
StepW = PWidth / 10
StepH = PHeight / 10
I = 0
Do
I = I + 1
Picture1.DrawStyle = 2
Picture1.Line (0, I * StepH)-(PWidth, I * StepH), RGB(131, 130, 129)
Picture1.Line (I * StepW, 0)-(I * StepW, PHeight), RGB(131, 130, 129)
Loop Until I >= 9
Picture1.Scale (0, 2)-(1000, -2) ' weil picture.scale (x1,y2)-(
' x2,y1)
For k = 1 To 2000
PWidth = Picture1.ScaleWidth
PHeight = Picture1.ScaleHeight
StepW = PWidth / 10
StepH = PHeight / 10
I = 0
Do
I = I + 1
Picture1.DrawStyle = 2
Picture1.Line (0, I * StepH)-(PWidth, I * StepH), RGB(131, 130, 129)
Picture1.Line (I * StepW, 0)-(I * StepW, PHeight), RGB(131, 130, 129)
Loop Until I >= 9
For r = 1 To 1000
sumVector(r) = Sin((r + k) * (Pi / 8 * k))
Next r
Picture1.DrawStyle = 0
Picture1.PSet (1, sumVector(1))
For m = 2 To 1000
Picture1.Line -(m, sumVector(m))
Next m
Label5.Caption = Format(k, "0")
Label5.Refresh
Next k
Label1.Caption = Format(XLabeli, "0.0")
Label2.Caption = Format(XLabelii, "0.0000")
Label3.Caption = Format(XLabeliii, "0.0000")
End Sub |