La semplicità e l'intuitività di gambas sono quasi disarmanti.
Credo di aver finito con le funzioni delle quali avevo bisogno, ho implementato un Container che contiene un ValueBox ed un Button.
L'unico evento esportato (è corretto dire esportato?) è il Change(),
mentre le proprietà sono:
FStep AS Variant (passo decimale di incremento/decremento)
FMin AS Variant (valore minimo permesso)
FMax AS Variant (valore massimo permesso)
DecimalSeparator (separatore decimale a scelta)
RepeatDelayms (lentezza con la quale scorrono i numeri a mouse premuto)
X,Y,W,H (posizioni e dimensioni)
Text (Valore stringa del floatspinbox con separatore = DecimalSeparator)
I metodi:
Move (analogo della funzione di gambas)
I Problemi:
1)
Per semplicità, ho incorporato i due controlli in un pannello ad arrangment orizzontale, questo fa sì che FloatSpinBox appartenga alla famiglia dei containers.
A me (momentaneamente) non crea problemi.
-
2)
Ho scelto di adottare un pulsante generico per simulare lo spin button, dato che con lo spinbox "segato", non mi era possibile risalire alle dimensioni della parte "bottone" vera e propria (dimensioni che possono variare al variare del toolkit o del tema in uso).
Questo ha comportato la necessità di creare una piccola immagine raffigurante le freccette sù/giù dello spinbutton da associare al bottoncino, nella classe ciò viene realizzato con un:
MySpinButton.picture = Picture["UpDown.png"]
Dove UpDown.png è un'immagine caricata appositamente nell' ide dall' utente.
E' possibile in qualche modo incorporare l'immagine nella classe?
-
3)
Ho usato una classe, e non un metodo, dato che con il metodo non mi era possibile generare degli eventi tramite RAISE ("Methods cannot RAISE events" è il messaggio d'errore o qualcosa di simile)
Vi allego la classe ed un esempio del suo funzionamento, il controllo reagisce agli eventi di mousedown.mouseup,mousewheel.
Magari qualcuno vuol perderci sù del tempo per renderla migliore,più completa, integrata etc.
Saluti!