Hallo zusammen,
ich bin kein Freund von Crossposting, aber ich habe hier ein Problem, wo mir bisher keiner weiterhelfen konnte. Das wird ein längerer Beitrag, bitte nicht hauen
Ich bastel gerade eine Ofensteuerung, die über USB an einer Karte einen Thermofühler analog abgreift und über einen Digital-Ausgang ein Solid-State-Relais schaltet... so weit wunderbar, funktioniert auch alles einwandfrei.
Auf meiner Userform habe ich eine PictureBox1, auf der die Soll- und Ist-Heizkurve angezeigt werden soll. In den Deklarationen hole ich mir eine Bitmap, die dann über Plotter.DrawLine bemalt wird...Funktioniert eigentlich auch... ABER: Wenn ich das ablaufende Programm über meine Stoptaste unterbreche, um ein anderes Programm mit einer anderen Heizlinie zu wählen, malt mir das Programm die neue Linie zu der alten. Ich kriege das auch nicht in den Griff, wenn ich in der Sub plott() eine neue BMP ziehe... dann wird die Ist-Heizkurve nicht geschrieben...
Habt Ihr eine Lösungsmöglichkeit für mich???
So hab ich es gemacht: Die
stehen natürlich in den Deklarationen...
Danke für die Hilfe!!!
...Edit: Oder mache ich da einen Denkfehler im Ablauf???
Gruß
Pitter
ich bin kein Freund von Crossposting, aber ich habe hier ein Problem, wo mir bisher keiner weiterhelfen konnte. Das wird ein längerer Beitrag, bitte nicht hauen
Ich bastel gerade eine Ofensteuerung, die über USB an einer Karte einen Thermofühler analog abgreift und über einen Digital-Ausgang ein Solid-State-Relais schaltet... so weit wunderbar, funktioniert auch alles einwandfrei.
Auf meiner Userform habe ich eine PictureBox1, auf der die Soll- und Ist-Heizkurve angezeigt werden soll. In den Deklarationen hole ich mir eine Bitmap, die dann über Plotter.DrawLine bemalt wird...Funktioniert eigentlich auch... ABER: Wenn ich das ablaufende Programm über meine Stoptaste unterbreche, um ein anderes Programm mit einer anderen Heizlinie zu wählen, malt mir das Programm die neue Linie zu der alten. Ich kriege das auch nicht in den Griff, wenn ich in der Sub plott() eine neue BMP ziehe... dann wird die Ist-Heizkurve nicht geschrieben...
Habt Ihr eine Lösungsmöglichkeit für mich???
So hab ich es gemacht: Die
PHP Code:
snip
Dim bmp As New Bitmap(640, 480) ' Neue Bitmap mit 320 x 240-Format
Dim plotter As Graphics = Graphics.FromImage(CType(bmp, Image))
snap
PHP Code:
snip..
Public Sub plott()
plotter.DrawLine(Pens.Blue, CInt((x2_alt / 6) + 20), 280 - CInt(alt_temp / 4), CInt((x2_neu / 6) + 20), 280 - CInt(neu_temp / 4))
PictureBox1.Image = bmp 'Setzt das Bild in die PictureBox1
End Sub
Private Sub Programm_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
jetzt = Format(Now(), "HH:mm:ss")
plotter.DrawLine(Pens.Blue, 20, 280, 600, 280) ' x-achse
plotter.DrawLine(Pens.Blue, 20, 0, 20, 280) ' y Achse
plotter.DrawLine(Pens.Blue, 15, 150, 25, 150) ' y Scalenstrich 520
plotter.DrawString("520", drawFont, drawBrush, 0, 130) ' Beschriftung 520
plotter.DrawLine(Pens.Blue, 15, 153, 25, 153) ' y Scalenstrich 508
plotter.DrawString("508", drawFont, drawBrush, 0, 153) ' Beschriftung 508
plotter.DrawLine(Pens.Blue, 15, 170, 25, 170) ' y Scalenstrich 440
plotter.DrawString("440", drawFont, drawBrush, 0, 170) ' Beschriftung 440
PictureBox1.Image = bmp
If ProgrammBox.SelectedIndex = -1 Then
MessageBox.Show("Achtung: Bitte Programm auswählen!")
PictureBox1.Image = bmp
End If
If ProgrammBox.SelectedIndex = 0 Then
plotter.DrawLine(Pens.Red, 20, 275, 153, 170)
plotter.DrawLine(Pens.Red, 153, 170, 559, 170)
PictureBox1.Image = bmp
End If
If ProgrammBox.SelectedIndex = 1 Then
plotter.DrawLine(Pens.Red, 20, 275, 183, 153)
plotter.DrawLine(Pens.Red, 183, 153, 198, 153)
plotter.DrawLine(Pens.Red, 198, 153, 334, 170)
plotter.DrawLine(Pens.Red, 334, 170, 349, 170)
plotter.DrawLine(Pens.Red, 349, 170, 559, 275)
PictureBox1.Image = bmp
End If
...
End Sub
Private Sub vorheizen()
...
End If
End Sub
Private Sub batch()
...
End Sub
.
Snap
Danke für die Hilfe!!!
...Edit: Oder mache ich da einen Denkfehler im Ablauf???
Gruß
Pitter