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 - vuott

Pagine: 1 ... 743 744 [745] 746 747 ... 788
11161
Programmazione / Re: cancellare spazi da una stringa
« il: 07 Luglio 2012, 16:36:34 »
salve sapete come si cancellano tutti gli spazi in una stringa?
Lo spazio, come è noto, non è solo il luogo ove vaga Ceskho quando fa l'alieno, ma è un carattere come tutti gli altri, e tale va trattato.

Io userei la funzione Replace$:
Codice: gambas [Seleziona]

' Nella stringa sostituiamo tutti i caratteri "spazio", con un bel niente:
Replace(testo_contenente_gli_spazi, " ", "")

11162
avrei un piccolo problema nel visualizzare un array 2d in una combobox...
:ciao:
Questo tuo messaggio mi ha incuriosito: non avevo mai pensato a far gestire un array pluridimensionato da un ComboBox.

Allora ho fatto una cosa del genere (non so se è sostanzialmente analogo a quello tuo):
Codice: gambas [Seleziona]

Public Sub Form_Open()

 Dim a As New String[2, 2]

  a[0, 0] = "alibaba"
  a[1, 0] = "simbad"

  a[0, 1] = "aladino"
  a[1, 1] = "abukir"

  ComboBox1.List = a

End


...ed infatti nel Combo viene mostrata visivamente una sola unica lista-colonna, però la disposizione è sulla base del primo parametro dell'array:
alibaba
aladino
simbad
abukir


Sarebbe interessante fare una prova per vedere se in questo caso il ComboBox ha una capacità maggiore di contenere elementi.

11163
Dunque, il fenomeno è in Gambas è normale.
Va bene. Ne prendiamo atto.


Grazie ad entrambi per gli inteventi.   :ciao:

11164
Ho due array aventi medesima lunghezza.
Assegno dei valori agli elementi di un solo array, e poi effettuo un mero assegnamento da un array all'altro.
Modifico un elemento di uno solo dei due array.... mi ritrovo modificato anche l'elemento dell'altro array con il medesimo nuovo valore.  :rolleyes:
Provate:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim a As Byte
 Dim alibaba As New Byte[2]
 Dim simbad As New Byte[2]

  For a = 0 To 1
    alibaba[a] = 100 + a
  Next

  simbad = alibaba

  simbad[1] = 50

  Print alibaba[1]   '...stranamente darà 50 !

End


Questo strano fenomeno non avviene se uso il metodo .Copy previsto per gli array.... ma al di là di ciò, quel fenomeno lo ritenete normale ?

11165
COSAAAAAAAAAAA???????????????????  hai aggiunto dei pulsanti è non me l' hai detto!!!!!!!!!
...il programma è simpatico ed accattivante, ma qualche pulsante per gestire il brano (pausa, stop, etc) potevi pure mettercelo !  >:(


scherzi a parte mi fa piacere che almeno uno al mondo lo utilizzi!
...un fesso in giro si trova sempre !  :rotfl:



adesso so io dove metterti le api!...
Al riguardo potete sotto vedere una foto di Vuott che cerca massimo refrigerio dopo aver subito il supplizio infertogli da fsurfing con l'api !

11166
Niet da fare: ho provato a utilizzare il metodo Music per la riproduzione, per rilevare la fine del brano ho abilitato un timer (intervallo 10ms) che legge continualmente la posizione. Quando la posizione è minore di 0.010 (quindi sono arrivato alla fine) carico e riproduco la seconda traccia e disabilito il timer.
Si sente lo stesso l'interruzione.
Non so... forse anticipando un po' i tempi, nel senso che se carichi e fai partire i file successivo quando il Timer non è proprio giunto a zero....  :-\

11167
Niet da fare: ........
Si sente lo stesso l'interruzione.
....devi "inseguire le Api".......  :-[

Non so se mi spiego.


.... il mio gplay magari potrebbe esserti utile
Caro fsurfing devo dirti che il tuo applicativo (c'ho aggiunto qualche tastino funzionale) lo uso regolarmente per ascoltare i .wav ed .mp3 .  :D

11168
Potresti tradurre in linguaggio per i comuni mortali che sono solo diplomati in elettronica?

Ahééééé ! L'hai trovato qua l'esperto in informatica !  :rotfl:
Io, l'informatica, non l'ho manco studiata a scuola ! Sono un semianalfabeta programmatore della "domenica" !

Comunque sia, io volevo intendere di utilizzare direttamente le funzioni esterne di Alsa mediante la loro chiamata con Extern.



Sotto potete vedere un immagine medioevale di tre programmatori di Gambas-it che cercano di usare le... api.

11169
Comunque sia, guardate... fino a quando si devono fare delle cose semplici, può andare bene pure questo componente, ma se si devono fare cose più complesse, a mio avviso bisogna farsi il sederino così (   )  :hard: studiando come gestire i dati audio attraverso le funzioni esterne delle API di Alsa.

11170
Vorrei, per completezza e sempre in riferimento alla classe "Sound", ricordare che con Channel è possibile fermare o mettere in pausa l'esecuzione di un singolo file .wav.
Esempio:
Codice: gambas [Seleziona]

Private s1 As Sound


Public Sub Button1_Click()

 Dim s2 As Sound

  s1 = New Sound("alibaba.wav")
  Channel(Channels[0]).Play(s1)

  s2 = New Sound("simbad.wav")
  Channel(Channels[1]).Play(s2)

End


Public Sub Button2_Click()

' Fermiamo l'esecuzione del "solo" file .wav
' eseguito sul primo canale (il num. 0):
   Channel(Channels[0]).Stop
 
End



Allora, Music.Pos mi restituisce un float, quindi per sapere se il brano è finito suppongo debba fare continuamente una comparazione tra il tempo attuale e la durata del brano.
Suppongo si possa rilevare la durata di un brano, ma penso debba fare continuamente la comparazione...
Ti basta piazzare un Timer, ed andare a vedere ogni tot millisecondi (lo stabilirai tu) il valore che ti restituisce il metodo "Pos", ossia quanto tempo è trascorso dall'inizio. Questo inoltre ti consentirà di applicare anche una ProgressBar o uno Slider per indicare, appunto, il tempo trascorso.
Quando il brano sarà terminato, "Pos" ti restituirà un valore zero; e pertanto tu saprai che il brano è appunto terminato.

11171
ciao, scusate se mi intrometto...
Ciao doublemm, non capisco  :-\ perché tu debba scusarti: al forum possono partecipare tutti gli iscritti !

...ho fatto delle prove, vi risulta che associando il volume ad uno slider, al cambio volume il file in riproduzione si ferma?
Poiché la gamma è compresa tra 0.00 ed 1, devi inviare un valore di tipo Float. Va precisato che - secondo i risultati da me ottenuti - il cambio di volume di un file .wav, eseguito con la classe Sound, è possibile usando la classe "Channels", senza, però, specificare il numero di canale, altrimenti - sì, hai ragione - l'ascolto si blocca. L'uso di "Channels" significa, però, che saranno modificati, ovviamente, tutti i canali attivi, e quindi tutti i file audio eseguiti:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim s1 As Sound

  s1 = New Sound("alibaba.wav")
   Channel(Channels[0]).Play(s1)

' al posto della riga: "Channel(Channels[0]).Play(s1)"
' possiamo usare:  s1.Play()

End

' Avremo impostato lo Slider con le proprietà
' MaxValue = 100 e MinValue = 0
Public Sub Slider1_Change()

 Dim a As Float
 
  a = Slider1.Value / 100

  Channels.Volume = a

End





Ho fatto anche delle prove con la classe music. La classe music mi riprodice degli mp3 che con sound mi danno errore al momento del caricamento "unrecognized sound file type"
Sì, ti dò conferma. Vado a modificare al riguardo il mio primo intervento. Non avevo fatto la prova con gli .mp3.



Però mi sembra di aver capito che eseguire più "brani" contemporaneamente è come sentire più persone che parlano contemporaneamente....
....be'...sì... significa - ovviamente - far eseguire, e quindi ascoltare due o più file .wav (al di là di quali suoni contengono) contemporaneamente.


C'è un interrupt o qualcosa che mi "avverte" che è finito il brano?
Ritengo sia possibile, però con la proprietà Pos della classe "Music".


Se io tolgo il WAIT ed eseguo un fille .WAV che contiene un sigolo tono, mi accorgo che c'è stato il passaggio?
Cosa intendi dire con precisione ? Se puoi sapere, forse, se è stata avviata l'esecuzione del file ? O intendi un'altra cosa ?

11172
Le Classi "Channels" e "Channel".


Queste Classi funzionano congiuntamente con la Classe "Sound".
Abbiamo già visto sopra l'uso ed il comportamento di "Channels": in sostanza con questa classe si gestistono in blocco un numero - stabilito da noi - di canali sonori.

L'uso, invece, di "Channel" - come è intuibile - ci consente di gestire un singolo canale. Inoltre, possiamo far eseguire un file audio direttamente con l'uso della classe "Channel" mediante il suo metodo Play. "Channel" attiverà automaticamente il canale prescelto all'interno dell'array "Channels".


Quindi, ricapitolando, "Channels" ci consente di gestire contemporaneamente più canali in blocco, "Channel" ci consente di operare singolarmente su ciascun canale.

Esempio pratico. Eseguiamo tre volte separatamente un medesimo file audio mediante la classe "Channel" impostando con intensità diversa il volume di ciascuno di essi:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim s1, s2, s3 As Sound

' Impostiamo il volume ad intensità bassissima del 1° canale,
' ossia il num. 0 all'interno dell'array "Channels":
 Channels[0].Volume = 0.03
 s1 = New Sound("alibaba.wav")
' Attiviamo il "1°" canale ed eseguiamo il file audio:
  Channel(Channels[0]).Play(s1)

 Wait 1
  Channels[1].Volume = 0.1
  s2 = New Sound("alibaba.wav")
  Channel(Channels[1]).Play(s2)

 Wait 1
  Channels[2].Volume = 1
  s3 = New Sound("alibaba.wav")
  Channel(Channels[2]).Play(s3)

End


Ovviamente, anche "Channel" ci consente di far eseguire duo o più (fino a 32) file audio contemporaneamente.



Comunque, da tutta questa storia ho scritto un nuovo capitolo nelle Guide della Comunità della nostra WIKI:
http://www.gambas-it.org/wiki/index.php?title=La_gestione_mediante_il_componente_gb.sdl.sound

11173
Domande tecniche / Pre-rilascio della versione 3.2.0 di Gambas
« il: 30 Giugno 2012, 16:14:37 »
Ambasciata della Comunità italiana di Gambas sulla mailing list internazionale

Comunicazione n. 8 dal vostro Ambasciatore     :rotfl:

Questa Ambasciata porta a conoscenza un comunicato diffuso da Minisini circa un pre-rilascio della versione 3.2.0 di Gambas:

Hi,

I have uploaded the Gambas 3.2 source package on sourceforge:

http://sourceforge.net/projects/gambas/files/gambas3/gambas3-3.2.0.tar.bz2/download

Please try it, and if there is no problem, I will make the release public.

Thanks in advance.

Regards,

--
Benoît Minisini

11174
Il tuo messaggio mi ha costretto  ;D ad inseguire il tentativo di approfondire la conoscenza del componente gb.sdl.sound...

Dopo varie prove ecco di seguito cosa ne ho ricavato.


Allora... bisogna distinguere la classe Music dalla classe Sound.

La classe Music consente di ascoltare un solo file sonoro (.wav, .mp3, .ogg) per volta.

La classe Sound consente, invece, di ascoltare contemporaneamente fino a 32 file sonori (di tipo .wav).
In questo caso, per far eseguire un file sonoro, è necessario caricarlo in memoria assegnando ad una specifica variabile di tipo "Sound" un singolo file sonoro.
Ogni file sarà fatto suonare in un canale, cosicché è possibile decidere mediante la classe "Channels" quanti canali saranno attivati per la riproduzione, e dunque quanti file, caricati in memoria nelle predette variabili, saranno eseguiti.
La classe "Channels" ci consente, inoltre, di impostare il volume all'interno di una gamma tra 0.00 e 1 .

Dalla teoria alla pratica.....

Per comprendere meglio quanto detto sopra, facciamo questo test: tentiamo di far eseguire tre file sonori ad entrambe le Classi prima descritte.

Prova con la Classe Sound:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

' dichiariamo tre variabili del tipo "Sound":
 Dim s1, s2, s3 As Sound

' Attiviamo, però, soltanto 2 canali.
' Questo determinerà l'esecuzione di solo due file sonori:
   Channels.Count = 2
' Impostiamo il volume di quei 2 canali attivati a metà:
   Channels.Volume = 0.5

'...carichiamo "in memoria" (come dice la documentazione) tre file sonori.
' Dovremo caricarli ciascuno in una singola variabile di tipo della classe "Sound":
   s1 = New Sound("/alibaba.wav")
   s2 = New Sound("/aladino.wav")
   s3 = New Sound("/simbad.wav")

' Li andiamo a far eseguire... "contemporaneamente":
   s1.Play()
   s2.Play()
   s3.Play()

'...ma poiché abbiamo attivato solo due canali,
' sentiremo soltanto i primi due file sonori.

End




Prova con la Classe Music:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

'...nel tentativo disperato di far eseguire contemporaneamente
' anche qui tre file sonori, li carichiamo tutti e tre:
   Music.Load("/alibaba.wav")
   Music.Load("/aladino.wav")
   Music.Load("/simbad.wav")

' Poi, come vada vada, cerchiamo di eseguirli contemporaneamente:
  Music.Play
  Music.Play
  Music.Play

'...non c'è niente da fare, ahimé: sarà eseguito soltanto l'ultimo file sonoro del gruppo !
' Ugualmente si fa cilecca, anche provando ad usare (come abbiamo fatto per la Classe "Sound")
' delle variabili di tipo "Music".

End


       segue..........

11175
Programmazione (Gambas 2) / Re: Too many constants
« il: 29 Giugno 2012, 23:46:36 »
Per quanto riguarda la distruzione, usando
Codice: gambas [Seleziona]

ScrollView1.Children.Clear 


oppure, come mel mio caso
Codice: gambas [Seleziona]

Panel4.Children.Clear


non và, perchè, in entrambi i casi, dopo Children. accetta solo Count.

Suppongo questo avvenga perché usi Gambas-2.  :-\

Pagine: 1 ... 743 744 [745] 746 747 ... 788