Gambas-it

Programmazione => Progetti degli utenti => Topic aperto da: Top Fuel - 09 Settembre 2012, 00:34:28

Titolo: Gioco della tombola
Inserito da: Top Fuel - 09 Settembre 2012, 00:34:28
Finalmente pubblico qui il mio primo progetto in Gambas 2.
E' la versione pressoché definitiva del mio progettino, anche se non perfettamente funzionante. Rispetto alla prima versione scritta da me e dall'ineffabile Milio ho aggiunto alcune cosette ispiratemi da una festa di paese a cui ho partecipato. :)
L'unica cosa che manca è l'help perchè non ho la più pallida idea di come farne uno. ;D
L'ho messo in allegato, dateci una occhiata e ditemi cosa ne pensate.
Nel frattempo cercherò di risolvere un piccolo malfunzionamento. Vediamo se riuscite a trovarlo. ;)
Titolo: Re: Gioco della tombola
Inserito da: vuott - 09 Settembre 2012, 01:02:41
L'unica cosa che manca è l'help perchè non ho la più pallida idea di come farne uno. ;D
Io solitamente lo piazzo nel menu ed utilizzo - per non creare un form aggiuntivo - un MessageBox.

Ad ogni modo, complimenti ed auguri per il tuo programma.  :coder:
Titolo: Re: Gioco della tombola
Inserito da: Picavbg - 09 Settembre 2012, 09:39:09
L'unica cosa che manca è l'help perchè non ho la più pallida idea di come farne uno. ;D
Secondo me puoi percorrere due vie alternative, naturalmente, sempre secondo me, a seconda delle dimensioni dell'Help e di come  vuoi fare muovere l'utente dentro il documento stesso (per esempio con l'inserimento della funzione "vai al segnalibro XXX):
a) potresti utilizzare una TextArea richiamabile tramite Menù, Button o tasto Fx,
b) potresti scrivere il tuo documento d'aiuto in un file di formato Office da richiamare sempre tramite Menù, Button o tasto Fx. All'evento scatenato dalla pressione di quest'ultimo potresti associare un comando shell col quale, appunto fare salire il documento Office che t'interessa.
 :ciao:
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 09 Settembre 2012, 16:21:23
La B è troppo complicata per le mia capacità, la A invece è decisamente più fattibile. :)
Titolo: Re: Gioco della tombola
Inserito da: vuott - 09 Settembre 2012, 16:33:40
La B è troppo complicata per le mia capacità....

Esagerato ! Non ci credo. Picavbg ti ha proposto semplicemente una cosa analoga a questa:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

   Shell "gedit /percorso_del_file_di_aiuto_da_aprire"

End




Però, poiché aborriamo l'uso eccessivo del comando shell (come appunto ci esorta sempre Ceskho  ;D ); e quindi, impostando nel progetto anche il componente gb.desktop, possiamo utilizzare in modo esclusivo una funzione di Gambas:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

  Desktop.Open("/percorso_del_file_di_aiuto_da_aprire")

End
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 09 Settembre 2012, 17:01:23
Il problema non è richiamarlo, ma sopratutto stilare un documento leggibile e magari con richiami ipertestuali in modo da offrire un help serio.
Ed ora scusate ma vado a fare un giretto con la mia Harl..., hem cioè KTM (ma porc...). :rolleyes:
Titolo: Re: Gioco della tombola
Inserito da: vuott - 09 Settembre 2012, 17:06:23
Il problema non è richiamarlo,
...eh, appunto, mi sembrava strano.



...ma sopratutto stilare un documento leggibile e magari con richiami ipertestuali in modo da offrire un help serio.
Sono sicuro  :-[ che md9327 ti esorterebbe ad approfondire lo studio della questione, al fine quindi di capire come poter fare.
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 09 Settembre 2012, 20:19:13
Sono sicuro  :-[ che md9327 ti esorterebbe ad approfondire lo studio della questione, al fine quindi di capire come poter fare.
Che sforzo, questo lo sapevo anche io... :bad:
Quando usavo il Visual Basic mi ricordo che c'era pure l'applicazione per creare gli help, qui non c'è qualcosa di similare?
Titolo: Re: Gioco della tombola
Inserito da: Picavbg - 09 Settembre 2012, 22:30:30
Quando usavo il Visual Basic mi ricordo che c'era pure l'applicazione per creare gli help, qui non c'è qualcosa di similare?
Rispolverando il mio vecchio libro ti algebra informatica ho incontratio la seguente formula
Citazione
VB = da dimenticare
  ;D
 Perchè ti ostini a cercare un'applicazione per l'Help? "Libre Office Writer" ti offre tutto quello che vai cercando, fra cui anche i "ichiami ipertestuali" a cui ti riferisci e che io ho chiamato nel mio primo post di risposta "segnalibro". Se non dovessi avere confidenza con detti strumenti esiste una guida on-line nella stessa applicazione "Libre Office" e, non bastando, puoi sempre chiedere qui; io uso moltissimo i segnalibri ed i loro riferimenti per redigere i miei documenti di tipo help. Non avrei alcuna difficoltà a suggerirti come procedere sia per la loro creazione che per i successivi richiami.  ;)
 :ciao:

Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 10 Settembre 2012, 00:19:37
Uff, vedremo... :)
Nel frattempo ho usato una textarea tanto per vedere come si presenta.
In ogni caso ho già in mente il prossimo progetto... ;)
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 10 Settembre 2012, 22:36:36
Ecco l'ultima versione con un help "grezzo".
Visto che nessuno di voi ha cercato il malfunzionamento che ho nominato all'inizio, ne parlo qui, perchè non riesco a uscirne fuori. Riguarda questo pezzo di codice:
Codice: [Seleziona]
tmp = Str$(.value) 'cerchiamo il numero nell'elenco...
j = InStr(listaestratti, tmp)
listaestratti = Left$(listaestratti, j - 1) & " " & Right$(listaestratti, Len(listaestratti) - j - Len(tmp)) '...e lo togliamo
E' la parte che si occupa di togliere dall'elenco dei numeri già estratti un numero che sia in mezzo e non l'ultimo. Teoricamente è semplicissimo: si cerca nella stringa il numero e si spostano a sinistra tutti quelli successivi.
Il problema è che sembra funzionare per i primi 2 o 3 numeri, poi sclera facendo quello che gli pare. Provate a mettere dentro una dozzina di numeri a caso e poi cominciate a spegnere un pò di numeri in mezzo...
Si accettano soluzioni. :)
Titolo: Re: Gioco della tombola
Inserito da: Picavbg - 11 Settembre 2012, 00:39:33
Ecco l'ultima versione con un help "grezzo".
Visto che nessuno di voi ha cercato il malfunzionamento che ho nominato all'inizio, ne parlo qui, perchè non riesco a uscirne fuori. Riguarda questo pezzo di codice:
Codice: [Seleziona]
tmp = Str$(.value) 'cerchiamo il numero nell'elenco...
j = InStr(listaestratti, tmp)
listaestratti = Left$(listaestratti, j - 1) & " " & Right$(listaestratti, Len(listaestratti) - j - Len(tmp)) '...e lo togliamo
E' la parte che si occupa di togliere dall'elenco dei numeri già estratti un numero che sia in mezzo e non l'ultimo. Teoricamente è semplicissimo: si cerca nella stringa il numero e si spostano a sinistra tutti quelli successivi.
Il problema è che sembra funzionare per i primi 2 o 3 numeri, poi sclera facendo quello che gli pare. Provate a mettere dentro una dozzina di numeri a caso e poi cominciate a spegnere un pò di numeri in mezzo...
Si accettano soluzioni. :)
Attenzione. I numeri presenti nella "listaestratti" sono tutti di 2 caratteri? Io creerei una lista estratti in formato array. Sarebbe assai semplice da gestire e te ne potresti anche fregare della lunghezza di ciascun numero. Ad ogni estrazione, inoltre, il numero estratto, presente nella lista, andrebbe sostituito con 0 e non avresti nemmeno l'onere di spostare tutti i numeri non ancora estratti.
Es.:
Codice: gambas [Seleziona]
Public listaestratti as new integer[]

Public sub _new
for i = 0 to 89
  listaestratti[i] = i+1
Next
'----- bla -----Bla -----Bla -----
END

Public sub Aggiorna_listaestratti
dim bTrovato as boolean
  i= NumEstratto -1
  listaestratti[i] = 0
END

 Ho dato un'idea veloce, ma confesso di non avere ancora letto il tuo codice. Lo farò però domani. Ti prego di perdonare la mia impazienza nel comunicarti l'idea che m'è venuta.
Ciao.
Titolo: Re: Gioco della tombola
Inserito da: Picavbg - 11 Settembre 2012, 09:37:33
Ho letto la procedura interessata  dal malfunzionamento e, secondo me, la soluzione che ti ho suggerita ieri sera, relativamente alla dichiarazione di listaestratti come array, è irisolutiva, perchè, come pensavo il tuo problema è determinato dall'istruzione tmp = Str$(Estrazione[indice) ; la conversione in stringa, nel tuo caso, non fornisce sempre valori di lunghezza uguale. A parte ciò puoi gestire sia l'array Estrazione che il nuovo array listaestratti senza pensare alla posizione dell'ultimo numero estratto nell'array:
Codice: gambas [Seleziona]

Public Sub Numeri_MouseUp() 'accende o spegne i numeri estratti
Dim i, j As Byte 'le immancabili variabili indice :)
With Last
   If .background = Colorenonestratti Then 'accende un numero
      .background = Colorestratti
      Estrazione.Add(.Value) 'aggiunge l'ultimo numero estratto
      tmp = Str$(Estrazione[Estrazione.max])
      listaestratti = listaestratti & " " & tmp
   Else
      .background = Colorenonestratti 'spegne un numero
      i = 0
      While Not bTrovato
         If Estrazione[i] = .value
            tmp = Estrazione[i]
           For j = i To Estrazione.Max - 1
            Estrazione[j] = Estrazione[j + 1] '...lo si toglie scalando i successivi
           Next
         Endif
         Inc i
      Wend
      i = 0
      While Not bTrovato
         If listaestratti[i] = tmp
               For j = i To listaestratti.max - 1
                   listaestratti[j] = listaestratti[j + 1]
               Next
               listaestratti.Remove(listaestratti.Max) 'elimina l'ultimo numero dalla lista perché ormai doppio
               bTrovato = True
            Endif
            Inc i
         Wend
      Endif
'      If .Value = Estrazione[Estrazione.Max] Then  'se è l'ultimo estratto...
'         tmp = Str$(Estrazione[Estrazione.max])
'         listaestratti = Left$(listaestratti, Len(listaestratti) - (Len(tmp) + 1)) '...e lo cancella dall'elenco
'      If .value <> Estrazione[Estrazione.max] Then 'se invece si cancella un numero che non è l'ultimo...
'         For i = 0 To Estrazione.Max '...lo si cerca...
'            If Estrazione[i] = .value Then '...e quando trovato...
'               For j = i + 1 To Estrazione.Max
'                  Estrazione[i] = Estrazione[j] '...lo si toglie scalando i successivi
'               Next
'               Break  'quando è stato trovato non serve continuare
'            Endif
'         Next
'         tmp = Str$(.value) 'cerchiamo il numero nell'elenco...
'         j = InStr(listaestratti, tmp)
'         listaestratti = Left$(listaestratti, j - 1) & " " & Right$(listaestratti, Len(listaestratti) - j - Len(tmp)) '...e lo togliamo
'      Endif
'      Estrazione.Remove(Estrazione.Max) 'elimina l'ultimo numero dalla lista...
   Endif
End With
Progestratti.text = "Numeri estratti: " & listaestratti 'visualizza l'elenco dei numeri...
totest.text = "Tot. estratti: " & Str$(Estrazione.max + 1) '...e quanti ne sono stati estratti
If Estrazione.Count = 0 Then 'nel caso si siano tolti tutti i numeri senza usare Azzera
   Ultimo.Value = 0
   Progestratti.text = "Numeri estratti: "
Else
   Ultimo.Value = Estrazione[Estrazione.Max] 'visulizza l'ultimo numero estratto
End If
End


Io non ho provato il codice che ho buttato giù, ma penso che sia corretto; comunque, verificalo tu.
 :ciao:
Titolo: Re: Gioco della tombola
Inserito da: vuott - 11 Settembre 2012, 16:28:42
Nel frattempo ho usato una textarea tanto per vedere come si presenta.
L'ho vista, e devo dire che non è male come soluzione ! Sai ?  :coder:
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 11 Settembre 2012, 19:08:40
A me sembra un pò semplicina visti gli help megagalattici delle applicazioni professionali con richiami ipertestuali, figure varie ecc. ecc. :)
Però il programma è gratis quindi ci si può accontentare. ;D
@Picavbg: proviamo e vediamo se funziona.
Titolo: Re: Gioco della tombola
Inserito da: vuott - 11 Settembre 2012, 22:53:58
A me sembra un pò semplicina visti gli help megagalattici delle applicazioni professionali con richiami ipertestuali,
...ed allora, come ti ho detto prima, non ti resta altro che approfondire la questione.  ;D


....con richiami ipertestuali, figure varie ecc. ecc. :)
Un help "semplicino" con le immagini lo puoi già facilmente creare ad esempio con l'uso di un TextEdit ed il suo metodo .RichText + il codice HTML per richiamare le immagini, magari poste nella cartella Dati del tuo progetto.  :D
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 12 Settembre 2012, 17:03:24
Qui la metti sul pesante, non ho mai programmato in html e non ho mai creato documento rtf... :-\
Titolo: Re: Gioco della tombola
Inserito da: vuott - 12 Settembre 2012, 17:14:46
Qui la metti sul pesante, non ho mai programmato in html....
Ci sarebbe il solito piccolo riassuntino.....  :-[
http://www.gambas-it.org/wiki/index.php/Controlli_e_finestre_che_supportano_il_codice_HTML
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 12 Settembre 2012, 19:03:45
Come non mi piace l'html... :hard:
Grazie comunque.
Titolo: Re: Gioco della tombola
Inserito da: vuott - 12 Settembre 2012, 21:16:59
Come non mi piace l'html... :hard:
...ma ti offrirà particolari emozioni  ;D di programmazione.... del tipo insomma: "per ribadire il concetto".  :devil:
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 12 Settembre 2012, 23:41:13
Si, ribadire il concetto che mi fa schifo. :hatecomputer:

P.S.: se non la pianti di "ribadire il concetto" vado nell'altro thread e posto altri "concetti"; ne ho vari. :P :P
Titolo: Re: Gioco della tombola
Inserito da: vuott - 12 Settembre 2012, 23:43:13
Si, ribadire il concetto che mi fa schifo. :hatecomputer:
 :'(



P.S.: se non la pianti di "ribadire il concetto" vado nell'altro thread e posto altri "concetti"; ne ho vari. :P :P
...questi "concetti" bisognerebbe........ svilupparli !   ;D
Titolo: Re: Gioco della tombola
Inserito da: vuott - 13 Settembre 2012, 12:28:19
Con il codice html potresti crearti senz'altro un manuale interno complesso (anche con i rimandi di pagina e di capitolo, ai quali stavi pensando). Vi sono alcuni programmi che per il proprio manuale utilizzano pagine con estensione htm/html, con le quali poter sfruttare appunto tutta la funzionalità del protocollo html.

Tali pagine, salvate in uno o più indipendenti file .html, potrebbero essere caricate nella cartella Dati del progetto (che tra l'altro puoi creartele direttamente proprio da lì), e richiamate opportunamente, indicando - come più compiutamente spiega md9327 qui: http://www.gambas-it.org/smf/index.php?topic=2276.msg25052#msg25052  - l'intero percorso del file .html presente nella cartella "Dati".
Così, ad esempio, se abbiamo nella cartella "Dati" un file Html1.html, potrà essere aperto così:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

' come è noto, per usare il metodo di questa classe,
' bisogna attivare anche il componente "gb.desktop":
   Desktop.Open(Application.Path &/ "Html1.html")
    
End
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 14 Settembre 2012, 21:22:29
Altro problemino: ho provato ad aprirlo con Gambas 3, mi ha chiesto se volevo convertirlo e gli ho detto si (picio). Adesso però tutto appare rimpicciolito rispetto a prima. Come mai?
Fortuna che ho ancora l'archivio con la versione per G2
Titolo: Re: Gioco della tombola
Inserito da: Picavbg - 14 Settembre 2012, 23:30:26
Altro problemino: ho provato ad aprirlo con Gambas 3, mi ha chiesto se volevo convertirlo e gli ho detto si (picio). Adesso però tutto appare rimpicciolito rispetto a prima. Come mai?
É un problema legato al Font utilizzato nella versione precedente in tutti gli oggetti grafici del prgramma, Form, TextBox, Label,...  :-\
 Io ho vissuto la stessa tua esperienza ed ho dovuto reimpostare tutti i font nei vari oggetti. É una gran rottura, ma io ho preferito reimpostare tutto. Per una tale situazione, non si può rimanere attaccati all'infinito a G2. A tale proposito incontro pure differenze nella dimensione dei caratteri, a seconda se eseguo il mio programma con fedora o con Sabayon, pur richiamando la stessa versione in entrambi i SO, ma probabilmente ciò può dipendere dal software di gestione della scheda grafica del pc. Ho dovuto perciò ridimensionare anche alcuni oggetti, non sufficientemente capienti, in certi casi. Personalmente non mi sono preoccupato più di tanto. 
 :ciao:


Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 15 Settembre 2012, 09:46:47
Fintanto che non hai da spostare e ridimensionare quasi un centinaio di oggetti va bene... :hard:
Titolo: Re: Gioco della tombola
Inserito da: Picavbg - 15 Settembre 2012, 11:47:11
Fintanto che non hai da spostare e ridimensionare quasi un centinaio di oggetti va bene... :hard:
Si,è vero. Però Gambas 4 non uscirà il mese entrante o l'anno prossimo, per cui la fatica va fatta una sola volta. Per restare nel mio esempio, il mio programma conteneva, quando sono passato a Gambas3,  8 Form con circa 120 oggetti; ho apportato perciò  ben 120 adeguamenti di Font e non ho contato quanti ridimensionamenti di oggetti, perché non tutti ne hanno avuto bisogno. Ho sudato  :hatecomputer:, ma ormai sto tranquillo.  :D
 :ciao:
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 15 Settembre 2012, 16:46:28
E va bene, sposteremo tutto. :coder: :hatecomputer:
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 18 Settembre 2012, 17:53:32
Ho letto la procedura interessata  dal malfunzionamento e, secondo me, la soluzione che ti ho suggerita ieri sera, relativamente alla dichiarazione di listaestratti come array, è irisolutiva, perchè, come pensavo il tuo problema è determinato dall'istruzione tmp = Str$(Estrazione[indice) ; la conversione in stringa, nel tuo caso, non fornisce sempre valori di lunghezza uguale. A parte ciò puoi gestire sia l'array Estrazione che il nuovo array listaestratti senza pensare alla posizione dell'ultimo numero estratto nell'array:
Codice: gambas [Seleziona]

Public Sub Numeri_MouseUp() 'accende o spegne i numeri estratti
Dim i, j As Byte 'le immancabili variabili indice :)
With Last
   If .background = Colorenonestratti Then 'accende un numero
      .background = Colorestratti
      Estrazione.Add(.Value) 'aggiunge l'ultimo numero estratto
      tmp = Str$(Estrazione[Estrazione.max])
      listaestratti = listaestratti & " " & tmp
   Else
      .background = Colorenonestratti 'spegne un numero
      i = 0
      While Not bTrovato
         If Estrazione[i] = .value
            tmp = Estrazione[i]
           For j = i To Estrazione.Max - 1
            Estrazione[j] = Estrazione[j + 1] '...lo si toglie scalando i successivi
           Next
         Endif
         Inc i
      Wend
      i = 0
      While Not bTrovato
         If listaestratti[i] = tmp
               For j = i To listaestratti.max - 1
                   listaestratti[j] = listaestratti[j + 1]
               Next
               listaestratti.Remove(listaestratti.Max) 'elimina l'ultimo numero dalla lista perché ormai doppio
               bTrovato = True
            Endif
            Inc i
         Wend
      Endif
'      If .Value = Estrazione[Estrazione.Max] Then  'se è l'ultimo estratto...
'         tmp = Str$(Estrazione[Estrazione.max])
'         listaestratti = Left$(listaestratti, Len(listaestratti) - (Len(tmp) + 1)) '...e lo cancella dall'elenco
'      If .value <> Estrazione[Estrazione.max] Then 'se invece si cancella un numero che non è l'ultimo...
'         For i = 0 To Estrazione.Max '...lo si cerca...
'            If Estrazione[i] = .value Then '...e quando trovato...
'               For j = i + 1 To Estrazione.Max
'                  Estrazione[i] = Estrazione[j] '...lo si toglie scalando i successivi
'               Next
'               Break  'quando è stato trovato non serve continuare
'            Endif
'         Next
'         tmp = Str$(.value) 'cerchiamo il numero nell'elenco...
'         j = InStr(listaestratti, tmp)
'         listaestratti = Left$(listaestratti, j - 1) & " " & Right$(listaestratti, Len(listaestratti) - j - Len(tmp)) '...e lo togliamo
'      Endif
'      Estrazione.Remove(Estrazione.Max) 'elimina l'ultimo numero dalla lista...
   Endif
End With
Progestratti.text = "Numeri estratti: " & listaestratti 'visualizza l'elenco dei numeri...
totest.text = "Tot. estratti: " & Str$(Estrazione.max + 1) '...e quanti ne sono stati estratti
If Estrazione.Count = 0 Then 'nel caso si siano tolti tutti i numeri senza usare Azzera
   Ultimo.Value = 0
   Progestratti.text = "Numeri estratti: "
Else
   Ultimo.Value = Estrazione[Estrazione.Max] 'visulizza l'ultimo numero estratto
End If
End


Io non ho provato il codice che ho buttato giù, ma penso che sia corretto; comunque, verificalo tu.
 :ciao:

Ho provato ad usare la tua modifica: a parte il fatto che non hai messo i THEN dopo le varie IF :bad:, l'array listaestratti poi non viene usato per stampare i valori nella label, mi da errore giustamente perchè c'è una stringa con lo stesso nome oltre al fatto che mi sembra quasi un inutile doppione dell'array Estrazione.
Non mi sembra che funzioni molto bene. Proverò a fare qualche modifica per farlo funzionare meglio.
Titolo: Re: Gioco della tombola
Inserito da: milio - 18 Settembre 2012, 21:48:57
Codice: gambas [Seleziona]
PUBLIC SUB Numeri_MouseUp() 'accende o spegne i numeri estratti
DIM Nx AS Integer

   WITH LAST
      IF .background = Colorenonestratti THEN 'accende un numero
         .background = Colorestratti
         Estrazione.Add(.Value) 'aggiunge l'ultimo numero estratto
      ELSE
         .background = Colorenonestratti 'spegne un numero
         Estrazione.Remove(Estrazione.Find(.Value)) 'Rimuove l'ultimo numero selezionato
      ENDIF
   END WITH
   Progestratti.text = "Numeri estratti: "
   FOR EACH Nx IN Estrazione
      Progestratti.text &= Str$(Nx) & " " 'concatena i numeri estratti in ordine di estrazione
   NEXT
   totest.text = "Tot. estratti: " & Str$(Estrazione.Count) '...e quanti ne sono stati estratti
   IF Estrazione.Count = 0 THEN 'nel caso si siano tolti tutti i numeri senza usare Azzera
      Ultimo.Value = 0
   ELSE
      Ultimo.Value = LAST.Value 'visulizza l'ultimo numero estratto
   END IF

END


 ;)
Titolo: Re: Gioco della tombola
Inserito da: milio - 18 Settembre 2012, 21:51:15
E ti consiglio di 'curare' un attimino il ridimensionamento della finestra... se metto a tutto schermo l'applicazione i vari oggetti non si ridimensionano...  :ciao:
Titolo: Re: Gioco della tombola
Inserito da: Picavbg - 18 Settembre 2012, 22:15:24
Ho provato ad usare la tua modifica: a parte il fatto che non hai messo i THEN dopo le varie IF :bad:, l'array listaestratti poi non viene usato per stampare i valori nella label, mi da errore giustamente perchè c'è una stringa con lo stesso nome oltre al fatto che mi sembra quasi un inutile doppione dell'array Estrazione.
Non mi sembra che funzioni molto bene. Proverò a fare qualche modifica per farlo funzionare meglio.
A prescindere se la modifica proposta ti sia piaciuta o no, ti posso assicurare che la IF senza "THEN", funziona benissimo. Io non sempre uso il termine sintattico "THEN" e le mie IF funzionano tutte benissimo.
Fai come credi.
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 18 Settembre 2012, 22:23:41
Eccolo che è arrivato milio con la soluzione di 4 righe MA, non è ancora quella giusta. :)
Risolve il problema della lista ma sballa l'ultimo numero estratto, ora se cancelli viene visualizzato l'ultimo numero cancellato.
Comunque siamo sulla buona strada, grazie.
Il form e i controlli li lascio di dimensione fissa per ora. Mi avevi già mandato la routine per il ridimensionamento ma chissà perchè con me non funzionava bene, oltre al fatto che da allora ho aggiunto alcune cose.
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 18 Settembre 2012, 22:25:43
A prescindere se la modifica proposta ti sia piaciuta o no, ti posso assicurare che la IF senza "THEN", funziona benissimo. Io non sempre uso il termine sintattico "THEN" e le mie IF funzionano tutte benissimo.

Non lo sapevo che le IF funzionassero anche senza mettere la THEN, questa mi giunge nuova. :-\
Titolo: Re: Gioco della tombola
Inserito da: milio - 18 Settembre 2012, 23:12:15
Eccolo che è arrivato milio con la soluzione di 4 righe MA, non è ancora quella giusta. :)

Codice: gambas [Seleziona]
Public Sub Numeri_MouseUp() 'accende o spegne i numeri estratti
Dim Nx As Integer

   With Last
      If .background = Colorenonestratti Then 'accende un numero
         .background = Colorestratti
         Estrazione.Add(.Value) 'aggiunge l'ultimo numero estratto
      Else
         .background = Colorenonestratti 'spegne un numero
         Estrazione.Remove(Estrazione.Find(.Value)) 'Rimuove l'ultimo numero selezionato
      Endif
   End With
   Progestratti.text = "Numeri estratti: "
   For Each Nx In Estrazione
      Progestratti.text &= Str$(Nx) & " " 'concatena i numeri rimasti in ordine di estrazione
   Next
   totest.text = "Tot. estratti: " & Str$(Estrazione.Count) '...e quanti ne sono stati estratti
   If Estrazione.Count = 0 Then 'nel caso si siano tolti tutti i numeri senza usare Azzera
      Ultimo.Value = 0
   Else
      Ultimo.Value = Estrazione[Estrazione.Max] 'visulizza l'ultimo numero estratto
   End If

End
Titolo: Re: Gioco della tombola
Inserito da: Top Fuel - 18 Settembre 2012, 23:42:09
Perfetto, ora ci siamo! :2birre: :2birre:
Direi che ora il progettino è completo (finché non mi verrà in mente qualcosa d'altro da aggiungere... ;)).
Eccolo in allegato, se vi serve.