Newsgroup: it.comp.lang.visual-basic
Titolo: Scroll Bar

Qualcuno sà come si possono ottenere le scroll bar con la lunghezza del
cursore variabile a seconda di quanto rimane da visualizzare?
L'unico modo che ho trovato è la proprietà LargeChange che però si
comporta secondo una legge non molto chiara. Qualcuno può spiegarmela?
Ringrazio chiunque in antipo. Gradita risposta anche al mio indirizzo
mail.
Ciao a tutti.
--
Paolo De Laurentiis
E.Mail: 
pd...@tin.it
HomePage 1: 
http://space.tin.it/io/pdelau
HomePage 2: 
http://www.freeweb.org/freeweb/pdelau

cursore variabile a seconda di quanto rimane da visualizzare?
scroll.min=1
scroll.max=massimo da visualizzare-gia visualizzato
Mi spiace di non essere più preciso ma non hai spiegato cosa volevi
visualizzare.Comunque, per esempio, se hai da visualizzare una picture:
 'massimo da visualizzare' è l'altezza dell'intera immagine
 'gia visualizzato' è l'altezza della finestra di visualizzazione.
Ciao

In effetti sono stato poco chiaro. ammettendo di avere un'immagine da
visualizzare (in realtà a me serve per i controlli su una form). Se l'altezza
totale dell'immagine è 100 mentre l'altezzadella picture box che la contiene è
50 vorrei che il CURSORE della scroll bar fosse lungo la metà della scroll bar
stessa. Se, al contrario, la picture box fosse alta 80, il cursore dovrebbe
essere lungo quanto l80% dell'altezza della scroll bar. In altri termini, il
cursore della scroll bar deve già dare un'idea di quanta parte dell'immagine
resta ancora da visualizzare.
Questa funzionalità è molto usata in quasi tutti gli applicativi che ho visto:
per esempio Word '97, o lo stesso Netscape 4.5, ecc.
L'unica proprietà, mi pare, che consenta di dimensionare il cursore
all'interno della scroll bar è LargeChange che viene così definita nell'help
on-line di VB5:
     La differenza tra i valori delle proprietà Max e Min divisa per il
     valore della proprietà LargeChange dà il numero di "click" necessari
     per far arrivare il cursore alla fine della scroll bar.
Per esempio:
    Sbar.Min=0
    Sbar.Max=100
    sbar.LargeChange=50
    (100-0)/50=2
sono necessari due click del mouse per far compiere l'intero spostamento.
In effetti, impostando a 100 la proprietà LargeChange nell'esempio precedente,
ottengo un cursore che ha lunghezza quanto la metà dell'intera scroll bar: è
giusto! deve bastare 1 solo click per arrivare in fondo!
Il problema si presenta quando voglio un cursore più grande della metà
(diciamo il 60% o il 70%  e così via). La proprietà sembra seguire una legge
esponenziale: per il 60 % la imposto a 400; per il 70% a 3000; fino ad
arrivare a circa il 99% impostandola a 32000 e rotti (la proprietà accetta
valore Integer).
Posso anche farci il callo ed utilizzare due leggi diverse per valore sotto il
100 e per valori sopra il 100, ma è possibile che non ci sia un modo più
semplice? Anche perché il risultato visivo di una routine così arrangiata non
è assolutamente paragonabile a quello che si può notare in tutte le
applicazioni.
Prego di inviare la risposta anche al mio indirizzo mail personale.
Grazie e ciao
Daniele wrote:

--


Prego di inviare la risposta anche al mio indirizzo mail personale.
Spiacente ma il tempo che io ho trovato per risponderti dovrai trovarlo
anche tu per leggere questo messaggio
PS Il conteggio dei clikki, quello di cui tu parlavi, si riferisce solamente
nel caso che tu clikki effettivamente su largechange e non su smallchange.
Nel caso che tu voglia impedire all'utente di scrollare di un punto e basta,
devi assegnare a smallchange il medesimo valore di largechange
Ciao

 anche tu per leggere questo messaggio
--


i passi ogni volta che voglio controllare i nuovi messaggi.
Chiedo scusa se posso esserti sembrato sgarbato ma odio chi pretende la
risposta email perchè considera il proprio tempo troppo importante....
Come mi hai spiegato non era il tuo caso. Scusa di nuovo
Ciao