PDA

Visualizza la versione completa : [vb] Aggiornare una PictureBox in tempo reale


lyllo
03-07-2002, 12:25
salve a todos.

ecco il problema:


private sub comboBox_Cahnge()

if cmbBox.text="immagine1" then
picturebox.picture= LoadPicture (App.path & "\Immagine1.jpg"
elseif cmbBox.text="Immagine2" then
picturebox.picture= LoadPicture (App.path & "\Immagine2.jpg"
endif
endsub

il fatto è che una volta selezionata l'iimagine nella combo, questa NON appare subito nella picturebox, ma solo dopo aver cliccato AVANTi o INDIETRO nel comando ADO riesco a vederla. il fatto è che l'aggiornamento non è corretto, e in sostanza senza spiegare i problemi di sincornizzazione che vedo a prog aperto, l'immagine è visualizzata correttamente solo al riavvio del programma.

il fatto è che vorrei vederla subito bene...

che devo fare?

ho provato con
Picturebox.Refresh
picturebix.Visibile
Ado.Resync o .Requery (e mi si è chiuso Vbasic :cry: , tanto che ho dovuto ricominciare, perchè le ultime modifiche non erano state salvate)

ma non ho ottenuto alcun risultato...

suggerimenti?

:ciauz:

Gigi84
03-07-2002, 12:31
il fatto è che una volta selezionata l'iimagine nella combo, questa NON appare subito nella picturebox, ma solo dopo aver cliccato AVANTi o INDIETRO nel comando ADO riesco a vederla

Non ho capito questo pezzo..

forse è una put#@n@ta ma prova a mettere la procedura ll'evento clik della combo..


:ciauz: :ciauz:

lyllo
03-07-2002, 12:56
ao sembrava una str0nz@t@ ed invece...

funge!

grazie

:ciauz: :gren: :gren: :gren:

vonkranz
03-07-2002, 13:00
...consiglio spassionato...:
Imposta anche la prop. autoredraw sia del controllo picture che del form a TRUE.

lyllo
03-07-2002, 13:01
perchè?

tanto creerò immagini tutte della stessa dimensione.

spiega perchè, che son curioso.

vonkranz
03-07-2002, 13:06
Xke' cosi' non sei sempre obbligato a fare un Refresh che viene fatto in automatico (ad esempio se sposti il form da un punto ad un altro, oppure se apri un msgbox sulla picture, quando la chiudi in genere rimane una "chiazza" bianca in corrispondenza della parte coperta dal box).

...'mazza quanto sei diffidente...:D

lyllo
03-07-2002, 13:15
non è che sono diffidente.. è che sono impaurito!
che non ti ricordi le avventure che abbiamo passato (e che dobbiamo ancora passare?)

cioè, basta che imposto autoredraw e basta?
non deovo fare qualcosaltro?

vonkranz
03-07-2002, 13:20
Originariamente inviato da lyllo
.....(e che dobbiamo ancora passare?)..


URGH!! ...suona come una minaccia :D


Originariamente inviato da lyllo

cioè, basta che imposto autoredraw e basta?
non deovo fare qualcosaltro?

Molto spesso basta questo, cmq a volte bisogna forzare ugualmente il refresh.

lyllo
03-07-2002, 13:43
ALT

si la pic si aggiorna automaticamente, al click visualizza le imagini richieste, solo che la visualizzazione c'è SOLO se clicco sulla combo box.

quindi se chiudo e riapro il programma, avendo già impostato l'opzione accade che, non dovendola più selezionare, non ci clicco sopra e quindi l'immagine non si vede! :cry:

vonkranz
03-07-2002, 13:51
Originariamente inviato da lyllo
ALT

.....
quindi se chiudo e riapro il programma, avendo già impostato l'opzione accade che, non dovendola più selezionare, non ci clicco sopra e quindi l'immagine non si vede! :cry:

questo e' uno di quei casi in cui serve forzare il refresh, oppure chiama la stessa routine che chiami quando fai il click sul combo nell'evento activate del form.

PS/NB:
La prop. autoredraw impostala a true nel box delle proprieta' dei controlli in Design-Time (puoi farlo anche a Run-Time ma lo devi fare subito al momento del lancio del programma).

Loading