Newsgroup: it.comp.lang.visual-basic
Titolo: immagine d'avvio

salve a tutti
vorrei che alla partenza del mio programma appaia un'immagine come
accade nell'office o nel photoshop.
mentre si caricano i form e si inizializzano le classi se c'č da
aspettare qualche secondo appare il logo del programma e magari una
scritta che dice che succede (come photoshop).
io l'ho realizzato con un form all'avvio (dove c'č l'immagine che mi
interessa) che mi carica le variabili varie e gli altri form. solo che
non sono molto soddisfatto.
esiste un oggetto fatto apposta per questo?
grazie a tutti.
Valerio

 esiste un oggetto fatto apposta per questo?
dipende... cos'è che non ti soddisfa, di preciso?
Faber

 writes:
vm> esiste un oggetto fatto apposta per questo?
Splash screen  form ?
-- 
Gian  | main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Uberto|                        David Korn, 1987 ioccc best one liner 
Lauri |-------------------------------------------------------------------
(aka saint) >>Vedere X-Nospam nell'header - See X-Nospam field in Header<<


Ecco un argomento che interssa pure a me...
La spash screen mi pare un semplice template da modificare secondo le
esigenze, che pero' in pratica non si vede neanche...
Mi spiego meglio, al caricamento dell'applicazione la splash screen appare
solo per una frazione di secondo...
Come faccio a dirgli di stare li 10 secondi ??
Alex

 Come faccio a dirgli di stare li 10 secondi ??
metti un bel timer, e nella routine appropriata scarichi il form ...
Faber

 esiste un oggetto fatto apposta per questo?
mi sembra che un esempio di splash form ci sia sia con vb5 sia con vb6.
sulle barre di avanzamento pero' la vedo duretta. se per esempio carichi n
form nascosti, dovresti parametrarla su quelli.
ma in genere se i form sono complessi preferisco dedicare tutta la cpu
possibile al loro caricamento. lo splash lo uso solo se _voglio_ che
l'utente _debba_ fermarsi e ragionare (ehehe) un attimo. es.: login con
password.

 Faber
mah, forse dovrei sistemare meglio gli eventi, ma a seconda della pesantezza
del programma il form spalsh si comporta diversamente. E' anche vero che io
avevo fatto una piccola animazione con delle immagini che apparivano a
rotazione.
forse la cosa migliore è mettere un timer che dopo 2 o 3 secondi apre il
resto e quando tutto è pronto chiude il foprm splash?

sleep


Esatto, so che bisogna usare il il timer ma non ho mica capito come fare per
dirgli "aspetta 10 secondi poi Unload Me"
qual'è la routine appropriata ???
Alex

> 
A> Ecco un argomento che interssa pure a me...
A> La spash screen mi pare un semplice template da modificare secondo le
A> esigenze, che pero' in pratica non si vede neanche...
nella  Sub  Main  carichi il  form  di  splash,  lo mostri,  avvii  le
inizializzazioni,  finite quelle  unload dello  splash, load  del form
principale e via...
BTW, non si ruba CPU all'inizializzazione a meno che tu non ti metta a
fare i  repainting dello splash  screen. Se vai avanti  senza lasciare
che il flusso  del programma passi per la coda  dei messaggi non perdi
tempo per la presenza dello splash screen.



si ma se non fai il repainting non puoi visualizzare quello che succede
(photoshop) ad esempio scrivere passo passo quello che stai inizializzando o
non puoi usare una progress bar, perche non si vedrebbero.
quindi forse è anche per questo che il photoshop impiega molto tempo ad
aprirsi?
p.s. comunque in fondo non è di grande importanza descrivere cosa succede, ma
è bello no?

 Alex

 basterebbe mettere nell'evento timer del timer: unload me
Grazie...
Scusa ma F1, MSDN, non l'ho installato e quindi non ho la guida...
Alex

 > la proprietà è interval (F1 non ti farebbe male)

beh, se hai spazio su disco (e i CD di MSDN - ovviamente <g>)
*installalo* !
altrimenti ti tocca sempre usare quella online, all'indirizzo
http://msdn.microsoft.com
Faber

> 
vm> si ma  se non fai il  repainting non puoi  visualizzare quello che
vm> succede  (photoshop) ad  esempio scrivere  passo passo  quello che
vm> stai inizializzando o
In quel caso (ed è  un caso dipendente dalle scelte del programmatore,
non  un  obbligo)  minimizzi  il  lavoro dando  il  refresh  del  solo
controllo aggiornato.
Comunque, ripeto, è una scelta: se hai bisogno di tutta CPU non mostri
nient'altro dello splash, se invece hai cose che durano a lungo ma non
necessariamente caricano  la CPU (i.e. attendere la  connessione ad un
db  remoto)  oppure  preferisci  metterci  un  po'  di  più  ma  tener
aggiornato l'utente, usi  dei controlli di output e  fai i refresh che
ritieni opportuni.


Allora, nel programma "PIPPO" abbiamo la form 'Main' che è quella
principale del programma (con tutte le sue cosette ben messe nell'evento
load), ed una 'Splash' che è lo splash screen...
All'avvio DEVE partire per prima la Splash; in Splash_load deve esserci
un bel Main.show (o Load Main, o quello che volete)... Così la Splash è
visualizzata, e il sistema ha modo di far partire la Main; se in
Main_Load si interviene opportunamente è facile gestire anche una
progress bar nella Splash. Ad esempio, supponiamo di avere 7 sub che
inizializzano il programma... La progress nella Splash si chiamerà
pBAR...
<CODICE>
sub Main_Load
    Splash.pBAR.Max = 7
    Splash.pBAR.Value = 0
    DoEvents
    initTuaSorella
    Splash.pBAR.Value = 1
    DoEvents
    initTuaNonna
    Splash.pBAR.Value = 2
    DoEvents
    initTuaZia
    Splash.pBAR.Value = 3
    DoEvents
    initTuaCognata
    Splash.pBAR.Value = 4
    DoEvents
    initTuaNuora
    Splash.pBAR.Value = 5
    DoEvents
    initLaTuaAmicaQuellaBella
    Splash.pBAR.Value = 6
    DoEvents
    initLaTuaAmicaSimpaticaMaBruttina
    Splash.pBAR.Value = 7
    DoEvents
    Unload Splash
end Sub
Ho scritto tutto a mente...
Il DoEvents potrebbe essere inutile...
</CODICE>
A questo punto, al completamento del load della main o dopo X secondi
(con un timer, già detto in questo thread) si fa l'unload della
Splash... Io preferisco un timer, ma anche il click del mouse... Odio
gli splash 'gaudiosi' che ti costringono ad uccidere un programma dal
task manager.
In questo modo è possibile aspettare quanto si vuole, senza avere
problemi di refresh o simili.
Unico problema: la Splash deve essere una topmost, altrimenti quando si
carica la Main (se sono nella stessa posizione) si sovrappone la Main e
la Splash scompare... :/ Leggere i vecchi post per maggiori
informazioni.
Ciao belli :))
-> GbC
http://www.gbcweb.com

 progress bar
AAARGH ! L'HAI DETTO !
io no vuole cchiu' audire nominare iddu objecto.

 la Splash scompare...
scusa ma il form non  appare dopo che form_load ha finito?a me progress bar
a parte funiziona tutto e il form spalsh rimane sempre ben visibile

> io no vuole cchiu' audire nominare iddu objecto.
ma di unny see?

 ma di unny see?
cchiu' ca d'unni, de quanno.
epoca imprecisata di formazione del neolatino.
hai presente quasimodo ?
quello del nome della rosa.
solo, un filino piu' mediterraneo.

 quello del nome della rosa.
ma il nome della rosa non è di sean connery?
e umberto eco ci ha fatto il film?

 e umberto eco ci ha fatto il film?
no, no.
ci ha fatto unzaccodizoldi.

senti un po'...
il tuo padrone ti ha vaccinato?
dopo un morso così mi toccherà andare a farmi medicare...


 ha scritto nel messaggio
news:3BFD753F...@hotmail.com...

ok, meglio cosě
-> GbC
http://www.gbcweb.com

 il tuo padrone ti ha vaccinato?
yes, online.
seguendo le istruzioni di msdn, labrador release.
:)

comunque grazie per i consigli sulla pBar

prego... :)
-> GbC
http://www.gbcweb.com