vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Probleme Picturebox // Datenrefresh 
Autor: Dirk
Datum: 05.08.08 11:57

Zu deiner Info, die Zeile:
Dim PWidth, PHeight, I, k, m, r, XLabeli, XLabelii, XLabeliii, htime As Integer
legt nur htime als Integer an. Die anderen werden als Variant angelegt.

Setz mal einen Breakpoint und gib mal in das "Immdediate Window/ Direktfenster" ?TypeName(htime), bzw ?TypeName(I) ein.

Du musst schreiben:
Dim I As Integer, k As Integer, ......
Davon abgesehen würde ich Variablen die nur innerhalb einer Prozedur verwendet werden auch dort definieren. Sind in dem geposteten Bsp. alle .

Dann solltest du innerhalb der Paint-Funktion nur zeichnen nicht rechnen. Ich verstehe nicht, wieso du eine Schleife k = 1 to 2000 hast? Bei mir kommt da nur schwarzer Brei. Ich hab's mal so umgeschrieben:
Option Explicit
 
Dim PWidth As Integer, PHeight As Integer, I As Integer, k As Integer
Dim m As Integer, r As Integer, XLabeli As Integer, XLabelii As Integer, _
  XLabeliii As Integer
Dim htime As Integer
 
Dim StepW  As Double, StepH  As Double
Dim sumVector(1 To 1000, 1 To 2000) As Double
Private Const Pi As Double = 3.14159265358979
 
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
Private Sub Form_Load()
 
  Dim y As Double
  Dim x As Double
 
  Dim p As PictureBox
 
  Set p = Picture1
 
  p.Scale (0, 2)-(1000, -2) 
 
  p.AutoRedraw = True
  p.DrawStyle = 2
 
  PWidth = p.ScaleWidth
  PHeight = p.ScaleHeight
 
  StepW = PWidth / 10
  StepH = PHeight / 10
 
  For I = 1 To 10
 
    y = p.ScaleTop + I * StepH
    x = p.ScaleLeft + I * StepW
 
    Picture1.Line (p.ScaleLeft, y)-(p.ScaleLeft + p.ScaleWidth, y), RGB(131, _
      130, 129)
 
    Picture1.Line (x, p.ScaleTop)-(x, p.ScaleTop + p.ScaleHeight), RGB(131, _
      130, 129)
 
  Next I
 
  Picture1.AutoRedraw = False ' alles was zwischen AutoRedraw = True und 
  ' AutoRedraw = False gezeichnet wurde, ist jetzt Teil der Hintergrundbitmap
 
  InitVects 'Einmal rechnen, Ergebnisse sind ja eh immer gleich
 
End Sub
 
Private Sub InitVects()
 
  Me.MousePointer = vbHourglass
  Picture1.MousePointer = Me.MousePointer
 
  For k = 1 To 2000
    For r = 1 To 1000
      sumVector(r, k) = Sin((r + k) * (Pi / 8 * k))
    Next r
  Next k
 
  Me.MousePointer = vbDefault
  Picture1.MousePointer = Me.MousePointer
 
End Sub
 
Private Sub Picture1_Paint()
 
  Me.MousePointer = vbHourglass
  Picture1.MousePointer = Me.MousePointer
 
  htime = 0.5
 
  '???
  XLabeli = 0
  XLabelii = 5 * htime
  XLabeliii = 10 * htime
 
  Picture1.DrawStyle = 0
 
  For k = 1 To 1 'Jetzt sieht man einen Sinus und keinen Brei
 
    Picture1.PSet (1, sumVector(1, k))
 
    For m = 2 To 1000
      Picture1.Line -(m, sumVector(m, k))
    Next m
 
    Label5.Caption = Format(k, "0")
    Label5.Refresh
 
    If k Mod 10 Then DoEvents
 
  Next k
 
  '???
  Label1.Caption = Format(XLabeli, "0.0")
  Label2.Caption = Format(XLabelii, "0.0000")
  Label3.Caption = Format(XLabeliii, "0.0000")
 
  Me.MousePointer = vbDefault
  Picture1.MousePointer = Me.MousePointer
End Sub

Gruß
Dirk

--
?Get it right the first time

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Probleme Picturebox // Datenrefresh1.243Carbenium05.08.08 00:02
Re: Probleme Picturebox // Datenrefresh987Zardoz05.08.08 05:27
Re: Probleme Picturebox // Datenrefresh930Dirk05.08.08 11:57
Re: Probleme Picturebox // Datenrefresh864Carbenium05.08.08 18:43

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel