vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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

VB.NET - Fortgeschrittene
Fehlermeldung beim Zeichnen in einer PicBox innerhalb eins Threads 
Autor: lars007
Datum: 25.06.10 20:49

Hallo NG,

ich sitze seit ein paar Tagen schon an dem Problem, dass ich einen Newsticker programmieren möchte, der aber innerhalb eines Programms läuft was noch andere Funktionen hat. Damit der Nutzer keine zu großen Leistungseinbußen hinnehmen muss, habe ich den Ticker nicht mit einem Timer sondern mit einem BackgroundWorker erstellt. Da die Oberfläche optisch etwas aufwenidg ist, lasse ich den Text in einer Picturebox laufen. Das funktioniert soweit auch sehr soft und ohne flickern und sieht auch top aus.

Jetzt kommt aber mein Problem. Wenn ich währen der Ticker läuft andere Programmfenster wie zum Beispiel einen IE mit einer Seite a la Bild aufmache und da hin und her scrolle, dann kommt nach kurzer eine Fehlermeldung von meinem Programm "Das Grafikobjekt wird schon an einer anderen Stelle verwendet". Wie schon gesagt, ich versuche seit Tagen dem Problem Herr zu werden, aber leider ohne Erfolg. Anbei der Programmteil der den Newsticker zeichnet. Ansonsten ist in dem Programm nichts anderes am Laufen.

Sub Grafik_aufbauen()
 
        Try
            Dim Image_Laufschrift, newPicture As Image
            Dim Position As Point
            Dim temptext As String
 
            temptext = "Newsticker +++ " & strLauftext
 
            Dim Schriftart As Font = New System.Drawing.Font("Times New Roman", _
              16.0!, System.Drawing.FontStyle.Bold, _
              System.Drawing.GraphicsUnit.Point, CType(0, Byte))
            Dim Brush As New SolidBrush(Color.LightGray)
 
            Image_Laufschrift = Bitmap.FromFile(Application.StartupPath & _
              "\GrafikBanner.jpg")
 
            newPicture = New Bitmap(560, 60)
 
            Dim size As SizeF = TextRenderer.MeasureText(temptext, Schriftart)
 
            Dim intcount As Integer = size.Width + 560
 
            For i As Integer = 1 To intcount
                graphic = Graphics.FromImage(newPicture)
                graphic.DrawImage(Image_Laufschrift, New Rectangle(0, 0, _
                  Image_Laufschrift.Width, Image_Laufschrift.Height))
                Position = New Point(560 - i, 18)
                graphic.DrawString(temptext, Schriftart, Brush, Position.X, _
                  Position.Y)
                Picbox1.Image = newPicture
                Threading.Thread.Sleep(int_Speed_Ticker)
            Next
 
            graphic.Dispose()
 
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
 
End Sub
Gestartet wird das ganze per BackgroundWorker1.RunWorkerAsync().

Ich nutze für dieses Projekt VB 2008.

Ich habe das Gefühl, dass meine Newstickergrafik mit irgendwas im allgemeinen Speicher kolidiert, kann das sein oder liege ich da völlig daneben.

Bin für jeden Tipp sehr dankbar!

Gruß
Lars
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Fehlermeldung beim Zeichnen in einer PicBox innerhalb eins T...1.002lars00725.06.10 20:49
Re: Fehlermeldung beim Zeichnen in einer PicBox innerhalb ei...687ModeratorFZelle27.06.10 13:08

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