Hej Du kör väl GetPixel och SetPixel i en loop ? Refresh raderna gör mig lite fundersam Vi tar bort dem på prov. Första Picture.Refresh behövs så att själva förändringen av bilden syns hela tiden.....annars bara väntar den ett tag och sedan kommer hela bilden....så det är till för att användaren ser att det verkligen händer något.... ahh...hehe....ibland snöar man in sig själv.... det fungerar perfekt nu...tackar =)Uppdatera en bild, medans en annan ritas...
Jag har på min form en Picture där jag laddar in en bild, och denna bild som laddas in där är ganska stor så jag har en liten "Mini Vy" vid sidan om, där jag kan se hela bilden förminskad.....och vid ett element under körning så förändras hela bilden.....Med hjälp av SetPixel och GetPixel.....
men mitt problem är att när bilden förändras så förändras inget i "Mini Vyn"...det är fortfarande samma tidigare bild.....finns det ett sätt att kunna få denna bild uppdaterad under förändingen av bilden...
eller när arbetet med bilden är klar att den lilla bilden blir uppdaterad då...
Tack på Förhand Sv: Uppdatera en bild, medans en annan ritas...
Lägg in ett DoEvents på lämpligt ställe i loopen.
Om du visar koden på det ställe där bilden laddas kanske Vi kommer på nåt.Sv: Uppdatera en bild, medans en annan ritas...
Så här ser koden ut.....
Vet inte riktigt var du hade tänkt dig att lägga in ett DoEvents...
<code>
For x = 0 To Picture.ScaleWidth
For y = 0 To Picture.ScaleHeight
Call SetPixel(Picture.hdc, x, y, (GetPixel(Picture.hdc, x, y) Xor RGB(Int(Rnd * 256), Int(Rnd * 256), Int(Rnd * 256))))
Next y
Picture.Refresh
Next x
Picture.Refresh
</code>Sv: Uppdatera en bild, medans en annan ritas...
Sen hoppas jag att du har UserScale Pixel.
<code>
'Här bör du "speeda" upp genom att först ta reda på ScaleWidth resp Height
For x = 0 To Picture.ScaleWidth
For y = 0 To Picture.ScaleHeight
Call SetPixel(Picture.hdc, x, y, (GetPixel(Picture.hdc, x, y) Xor _
RGB(Int(Rnd * 256), Int(Rnd * 256), Int(Rnd * 256))))
Next y
DoEvents
Next x
</code>
Sen får du testa att lägga ett refresh itaget, tror inte dom behövs ?Sv: Uppdatera en bild, medans en annan ritas...
men det andra Picture.Refresh är bara en liten garanti....kanske onödigt....
men så här ser koden ut just nu, men det fungerar inte som jag vill med Mini Vyn.....kanske bör nämna att Mini Vyn är av typen Image, och inte Picture...men det ska väl inte ha någon större skillnad?..
<code>
For x = 0 To Picture.ScaleWidth
For y = 0 To Picture.ScaleHeight
Call SetPixel(Picture.hdc, x, y, (GetPixel(Picture.hdc, x, y) Xor RGB(Int(Rnd * 256), Int(Rnd * 256), Int(Rnd * 256))))
Next y
Picture.Refresh
DoEvents
Image1.Picture = Picture1.Picture
Next x
</code>Sv: Uppdatera en bild, medans en annan ritas...