Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - koko

Pagine: 1 2 3 [4]
46
Programmazione (Gambas 2) / Re: SpinBox -> FloatSpinbox ?
« il: 03 Giugno 2008, 22:35:28 »
(Lungo Offtopic)

Sono reduce da una (bruttissima) esperienza con lazarus, brutta perchè ho voluto fare tutto e subito, e perchè ho perso moltissimo tempo dietro a bug dell' ide che non immaginavo nemmeno e che credevo dipendessero dal mio codice.
Alla fine il programma finale funzionava ed era discretamente stabile, ma il codice era davvero uno schifo.

Stavolta mi son messo con il pensiero di pianificare prima il tutto e sto spingendo molto sull' astrazione, il risultato che ho in mente è una gui che sia completa, e credo saprai che le funzioni che offre mplayer non sono poche.
Per adesso ho implementato la configurazione completa dei driver audio e video (ho tralasciato quelli davvero vetusti e quelli che lavorano su framebuffer grezzo o in console, inutili dato che gambas richiede X)
Ho sviluppato una classe per il drag'n drop degli oggetti perchè  i filtri rappresentano anelli mobili di una catena, la mia speranza è di rendere il tutto intuitivo, ma al contempo non limitante.
Altro problema abbastanza serio è quello di salvare la marea di impostazioni configurabili dall' utente in modo automatico; sono arrivato a qualcosa che sembra funzionare, ma che probabilmente nasconde qualche bug.

Al momento sono in cerca di un modello comune alla sintassi che i filtri  audio/video hanno da linea di comando che mi permetta di passare una stringa di parametri ad una funzione che ne faccia il parse e disegni un' interfaccia che permetta all' utente di configurarli.
Pensa che ho contato ad occhio più di 60 filtri (video, poi ci sono quelli audio e le opzioni a contorno), disegnarli nell' ide uno per uno è improponibile.

Vorrei aprire il codice al più presto, ma dal momento che la struttura iniziale non è ancora definita al 100%, è necessario aspettare, comunque se ti interessa dargli uno sguardo posso mandartelo per email, non è un problema.

Una nota a margine, gambas è qualcosa di spettacolare, da quando l'ho usato l'ho sentito subito mio, parecchie cose che non conoscevo (la mia esperienza con il basic risale al C64) le scovavo praticamente a intuito!

47
Programmazione (Gambas 2) / Re: SpinBox -> FloatSpinbox ?
« il: 03 Giugno 2008, 22:07:14 »
Grazie!
A me il triangolo superiore appariva "schiacciato", forse dipende dal tema qt.
L'ho rifatto così e sembrano più uniformi:

Codice: [Seleziona]

  Draw.Begin(hpic_up)
    Draw.FillStyle = 1
    draw.ForeColor = Color.Medium(Color.black, Color.ButtonBackground)
    coordinate = [1, 4, 9, 4, 5, 0]
    Draw.Polygon(coordinate)
    coordinate = [1, 8, 9, 8, 5, 12]
    Draw.Polygon(coordinate)
  Draw.End


Il color.medium serve a simulare un minimo di antialias in modo molto bonario :)

--Edit--
Ci siamo sovrapposti con i post, ovviamente mi riferivo alle prime coordinate.
Le mie le ho ricavate ricopiandole dall' immagine png (l'editor di immagini di gambas è una comodità...)
Inoltre ho aumentato la larghezza del bottoncino di un pixel per far sì che fosse centrata, direi che può passare ^^

48
Programmazione (Gambas 2) / Re: SpinBox -> FloatSpinbox ?
« il: 03 Giugno 2008, 20:13:39 »
Infatti io la creo nel progetto, ma volevo rendere la classe esportabile per completezza, ed allo stato attuale delle cose, per utilizzare questa classe è necessario appunto includere manualmente l'immagine updown.png nel progetto, altrimenti oviamente da errore.
Probabilmente occorre proprio creare un componente.

49
Programmazione (Gambas 2) / Re: SpinBox -> FloatSpinbox ?
« il: 03 Giugno 2008, 18:37:59 »
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!

50
Programmazione (Gambas 2) / Re: SpinBox -> FloatSpinbox ?
« il: 03 Giugno 2008, 12:53:35 »
E modulo sia, mi metto al lavoro,
la cosa che devo studiare per bene è la gestione/generazione degli eventi, speriamo bene ;)

51
Programmazione (Gambas 2) / Re: SpinBox -> FloatSpinbox ?
« il: 02 Giugno 2008, 23:59:25 »
Eheheh, carino, grazie!
Una piccola modifica sull' evento click della textbox per dare il focus al reale spinbox ed è quasi indistinguibile dall' originale (mi riferisco principalmente alla rotellina del mouse) ... si può fare :)

Non sono una cima nella gestione delle classi, come si potrebbe creare una classe che accorpasse i due elementi in un unico oggetto chiamato (uno a caso) floatspinbox?

PS:
Il progetto al quale sto lavorando e che trarrebbe vantaggio dalla floatspinbox è  un' interfaccia completa per mplayer

52
Programmazione (Gambas 2) / SpinBox -> FloatSpinbox ?
« il: 02 Giugno 2008, 13:41:25 »
E' possibile fare in modo che gli spinbox visualizzino valori float?
Da quel che ho capito possono gestire solo interi, ma mi chiedevo se esistesse un modo per scavalcare questa limitazione, infondo potrebbe essere un problema abbastanza comune!

Pagine: 1 2 3 [4]