Autore Topic: ripulire un picture box dalla precedente immagine  (Letto 809 volte)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
ripulire un picture box dalla precedente immagine
« il: 06 Maggio 2013, 19:34:43 »
se carico un'immagine cosi':
Codice: [Seleziona]
PictureBox_Logo.Picture = picture.Load(Dialog.Path)
PictureBox_Logo.Tag = Dialog.Path

come faccio a rimuoverla dal controllo?
io avevo provato cosi' ... ma non va' (nessun errore, sempicemente l'immagine persiste :D)

Codice: [Seleziona]
PictureBox_Logo.Picture = Null
PictureBox_Logo.Refresh
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.327
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #1 il: 06 Maggio 2013, 20:43:28 »
La questione (anche trattata nella WIKI: http://www.gambas-it.org/wiki/index.php?title=Cancellare_una_immagine_in_una_PictureBox_o_in_una_ImageView), da te sollevata, è alquanto strana: ho fatto la prova del tuo codice, e l'immagine sparisce. Inoltre, non risulta necessaria la funzione Refresh .


Vorrei riportare anche la risposta di Minisini ad una domanda simile:

« PictureBox1.Picture = Null

PictureBox1.Picture.Clear only clears the contents of the picture
returned by the property, which is somewhat a copy of the internal
picture of the PictureBox which stays unchanged.

Regards,

--
Benoît Minisini
»
http://www.mail-archive.com/gambas-user@lists.sourceforge.net/msg21742.html
« Ultima modifica: 18 Gennaio 2024, 09:19:58 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #2 il: 06 Maggio 2013, 23:57:11 »
funziona anche con
Codice: [Seleziona]
PictureBox_Logo.Delete
:ciao:
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.327
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #3 il: 07 Maggio 2013, 00:35:38 »
funziona anche con
Codice: [Seleziona]
PictureBox_Logo.Delete


...ma il metodo .Delete, in vero, fa sparire l'immagine, poiché distrugge la PictureBox. Infatti se, dopo aver applicato questa funzione, si ritenta di caricare un'immagine, si ottiene un avviso d'errore: Invalid object
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #4 il: 07 Maggio 2013, 08:39:01 »
Scusate, non ci avevo fatto caso. Ho fatto soltanto una prova veloce.  :-\
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #5 il: 07 Maggio 2013, 09:34:41 »
Però, leggendo il post di vuott, ho provato così:

Codice: [Seleziona]
Public Sub PictureBox1_DblClick()
  PictureBox1.Picture.clear
  PictureBox1.Picture = picture.load(User.home & "/mont/dativari/Documenti_Vari/iconcff.png")
End

Ed ecco le due immagini.

:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #6 il: 07 Maggio 2013, 09:40:22 »
Dimenticavo: Buon caffè anche a voi.
:ciao:

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #7 il: 07 Maggio 2013, 16:57:59 »
oggetto.delete mi distrugge l'oggetto (come dovrebbe) .... gli altri non refreshano l'oggetto ..... provo a caricargli un'immagine nulla della libreria
se corri, morirai stanco (motto degli sniper)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #8 il: 07 Maggio 2013, 17:41:23 »
oggetto.delete mi distrugge l'oggetto (come dovrebbe) .... gli altri non refreshano l'oggetto ..... provo a caricargli un'immagine nulla della libreria

... forse mi sono spiegato male .......

mi sarebbe servito che  picturebox.clear eliminasse l'immagine dal form e riportasse il rettangolo al colore di base (grigiolino per le mie impostazioni).

Ho risolto con una immagine png di 9x9 pixel nella classe data che carico alla pressione del tasto clear e metto picturebox.tag="" :D

puo' andare comunque, grazie
se corri, morirai stanco (motto degli sniper)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #9 il: 07 Maggio 2013, 19:11:12 »
... forse mi sono spiegato male .......

mi sarebbe servito che  picturebox.clear eliminasse l'immagine dal form e riportasse il rettangolo al colore di base (grigiolino per le mie impostazioni).
Hai ragione, la proprietà ".Clear" lascia inalterato il contenuto della PictureBox. La soluzione la suggerisce Minisini sempre nello stesso post di vuott:
Codice: [Seleziona]
PictureBox1.Picture = Null
che poi è quello che avevi già comunicato tu nel post d'apertura.

Se tu aggiungi il bordo alla PictureBox, dopo l'esecuzione dell'istruzione poc'anzi indicata, potrai vedere l'oggetto ripulito dell'immagine, ma col colore di fondo di default o quello eventualmente da te impostato.
Scusa per il disordine che ho generato.  :-[
 :ciao:
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.327
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #10 il: 07 Maggio 2013, 23:43:59 »
mi sarebbe servito che  picturebox.clear eliminasse l'immagine dal form e riportasse il rettangolo al colore di base (grigiolino per le mie impostazioni).

Ho risolto con una immagine png di 9x9 pixel nella classe data che carico alla pressione del tasto clear e metto picturebox.tag="" :D

puo' andare comunque, grazie

Potrà pure andare, ....d'accordo, però un problema c'è, poiché il valore Null, assegnato alla proprietà .Picture, avrebbe dovuto risolvere (e normalmente risolve) proprio come tu desideravi.   :-\
« Ultima modifica: 07 Maggio 2013, 23:46:14 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #11 il: 08 Maggio 2013, 11:36:45 »
potresti disegnarci sopra un rettangolo bianco (o del colore che preferisci), usando le apposite istruzioni di disegno... oppure usare appunto un'immagine in memoria, disegnata con lo stesso sistema, dopodiche la associ alla picturebox...

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.327
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #12 il: 08 Maggio 2013, 12:31:56 »
potresti disegnarci sopra .....
...resta comunque il fatto che a lui la cancellazione dell'immagine mediante l'assegnazione del valore Null alla proprietà .Picture stranamente non funziona.   :-\
Fossi in lui, cercherei di capire il perché.
« Ultima modifica: 08 Maggio 2013, 13:00:53 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: ripulire un picture box dalla precedente immagine
« Risposta #13 il: 08 Maggio 2013, 13:52:55 »
c'hai ragione vuott .... ma come avrai intuito sono pigro  ;D

mooolto pigro .... e se cosi' va' .... ciccia :D
se corri, morirai stanco (motto degli sniper)