Announcement

Collapse
No announcement yet.

Bitmap in Userform

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bitmap in Userform

    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

    PHP Code:
    snip
        Dim bmp 
    As New Bitmap(640480' Neue Bitmap mit 320 x 240-Format
        Dim plotter As Graphics = Graphics.FromImage(CType(bmp, Image))
    snap 
    stehen natürlich in den Deklarationen...


    PHP Code:
    snip..
        Public 
    Sub plott()
            
    plotter.DrawLine(Pens.BlueCInt((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.Blue20020280)                ' y Achse
            plotter.DrawLine(Pens.Blue, 15, 150, 25, 150)              ' 
    y Scalenstrich 520
            plotter
    .DrawString("520"drawFontdrawBrush0130)     ' Beschriftung 520
            plotter.DrawLine(Pens.Blue, 15, 153, 25, 153)              ' 
    y Scalenstrich 508
            plotter
    .DrawString("508"drawFontdrawBrush0153)     ' Beschriftung 508
            plotter.DrawLine(Pens.Blue, 15, 170, 25, 170)              ' 
    y Scalenstrich 440
            plotter
    .DrawString("440"drawFontdrawBrush0170)     ' 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
    Zuletzt editiert von Pitter; 06.07.2007, 12:09. Reason: ...was vergessen...
Working...
X