Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB.NET] rilasciare una risorsa

    salve a tutti..
    ho il seguente problema...
    devo assegnare una immagine da file a una pictureBox modificarla e salvarla... ma al momento del salvataggio mi dice che il file è utilizzato da un altro processo...

    come posso risolvere il problema?

    c'è un altro metodo?

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Posta il codice. Probabilmente, dovrai inserire qualche chiamata a Dispose se adoperi oggetti che fanno uso di risorse esterne "non gestite" (che devono essere liberate subito, senza attendere l'intervento del Garbage Collector).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ho provato a usare .dispose ma restituisce un errore " Invalid Parameter"...

    questo è il codice nella prima classe


    class a

    'eredita il controllo Picturebox

    dim bmp as bitmap

    Public sub New()
    bmp = New Bitmap(Drawing.Image.FromFile(sContactFile))
    gGraph = Graphics.FromImage(bmp)
    End Sub

    Public Sub ReleaseContacts()

    bmp.Dispose()
    gGraph.Dispose()

    bmp = Nothing
    gGraph = Nothing

    End Sub


    Public Function GetContacts() As Bitmap

    Return bmp

    End Function


    end class


    'salvo il bitmap da un altra classe:

    class b

    public sub closeme()
    Dim bitTempBMP As Bitmap = a.GetContacts

    a.ReleaseContacts()

    a.Dispose()

    If File.Exists(sContactFile) Then

    File.Delete(sContactFile) '<--- "eccezione di tipo IO il file è utilizzado da una altro processo

    End If

    bitTempBMP.Save(sContactFile, System.Drawing.Imaging.ImageFormat.Png)

    end sub
    end class

  4. #4
    ...per farla breve, per esempio, come faccio per associare un immagine a una picturebox e rilasciarla?

    in questo modo?


    dim bitImg as new Bitmap("mybitmap.jpg")

    mypicBox.image = bitImg

    bitImg.dispose()
    bitImg = Nothing

    perchè in questo modo il metodo .Dispose() mi lancia un errore :"Invalid Parameter"


  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da SystemFailure
    ...per farla breve, per esempio, come faccio per associare un immagine a una picturebox e rilasciarla?
    In quel caso, se è utilizzata dalla PictureBox, non devi rilasciarla.

    Dovresti solo accertarti che non vi siano stream aperti sul file quando tenti di salvarlo, tranne quello che ti serve appunto per salvare il file.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    grazie

    ho risolto

    aprivo per l'anteprima il file interessato e quando lo andavo a salvare giustamente lo trovava aperto.
    ora quando uso il file "pulisco" la pic dell'anteprima e la riassocio all'immagine a modifica effettuata..

    grazie ancora..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.