Newsgroup: it.comp.lang.visual-basic
Titolo: ScrollBar con max > di 32767

Ma perchè la scrollbar che viene fornita con vb è limitata a max 32767 ? :((
Ho necessità di andare oltre e non posso neanche usare trucchetti per
aggirare il tutto via codice.
Ci sarebbe la scrollbar contenuta in fm20.dll, ma come leggo sul sito della
m$ stessa, tutti i controlli contenuti in fm20.dll danno problemi se vengono
usati in computer dove non è installato l'office (problemi purtroppo testati
di persona).
Qualcuno saprebbe darmi un'alternativa alla scrollbar di default? Magari un
ocx già fatto da qualcun altro....
Avevo avuto la bella idea di provare a farlo da solo (l'ocx) ma ho
constatato che non si tratta di una cosa di 10-20 minuti e averlo già pronto
sarebbe proprio una bella cosa.
Aiutatemi pleeeease
Ave
Daniele

 aggirare il tutto via codice.
sinceramente non capisco il problema di una scrollbar con più di 32726 ....
il fatto è che non puoi visualizzare neppure i 32726 punti di spostamento
come puoi andare oltre?? :)))
i monitor hanno una definizione che si aggira al massino intorno ai 1600
pixel e una scroolbar con uno scorrimento più elevato è inutile.
magari se dai qualch info in più?
non ho mai usato la scrollbar di office però suppongo esegua delle divisioni
al posto tuo :))
-------
sito: 
www.dadev.it
ultime: Ocx per irc testi
-------

 sarebbe proprio una bella cosa.
20 minuti dovrebbero bastare.
Devi fare un OCX di wrapper della normale scrollbar, rimappandone i metodi e
gli eventi.
Ti basta intercettare le variazioni di Value e MaxValue. Se la variazione ha
luogo da codice, mantieni il valore. Se invece ha luogo dalla scrollbar
originale, modifichi il tuo valore del delta di variazione e lo reinserisci
al posto di quello della scrollbar dividendolo per una potenza di 10 a
piacere.
Se dividi per 10, puoi gestire fino a 327.000 valori. Se dividi per 100,
oltre 3 Milioni, e così via.
Non è difficilissimo. Prova e vedrai che ci riesci.
Ciao
*Roby*

 piacere.
Ci provo...ma non mi sembra cosi' semplice ;)
Ciao
Daniele

 Ci provo...ma non mi sembra cosi' semplice ;)
Tieni separati le suddetti  proprietà della normale scrollbar da quelle che
rendi pubbliche tu col tuo OCX, e vedrai che ti viene tutto bene.
Eccoti un po' di pseudocodice:
Dim dMioValue as double
Dim lOldValueScrollBarPrivata as long
Property Let OCX_Value(d as double)
  ScrollbarPrivata.Value=d\1000
  dMioValue=d
End property
Private Function ScrollbarPrivata__Change()
    OCX_Value= dMioValue + (ScrollbarPrivata.Value -
lOldValueScrollBarPrivata)*1000
    ' se vuoi evitare di muoverti con passo minimo di 1000, devi
proporzionalizzare il moltiplicatore
    ' in base alla distanza della posizione corrente da MaxValue e MinValue.
    ' così se ti scrolli di poco vai quasi a passo 1, se scrolli di molto
invece acceleri.
End function
Se hai domande specifiche, sono qui.
Ciao
*Roby*
P.S.
Non è perfetto, ma dovrebbe essere un buon compromesso.

 trucchetti per aggirare il tutto via codice.
crea un controllo che incapsuli la scrollbar standard e che conservi il 
valore sotto forma di Long anzichè Integer

 
Ho la scrollbar che ti interessa, anche se non è ancora completa.
Manca il disegno delle due freccine.
Se vuoi te lo mando.
-- 
Samuele Battarra
mail server: 
libero.it
, indirizzo: battarsa@(mail server)
prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/leggiminews.html

 Se vuoi te lo mando.
Mi faresti un grosso piacere! :)
Puoi mandarla in mail se non ti disturba troppo :P
Ciao
Daniele