Newsgroup: it.comp.lang.delphi
Titolo: Eseguire un evento alla pressione di un bottone

Su di una form ho messo qualche bottone che simula una piccola 
tastierina musicale, però i bottoni eseguono il suono al rilascio 
mentre io vorrei che venga eseguito alla pressione, come posso fare?
Inoltre ho usato Windows.Beep (freq,durata) e funziona, è possibile 
però fare in modo che la durata sia pari alla durata della pressione 
del bottone? In pratica come le tastiere virtuali, si preme un tasto e 
suona, e la nota continua a suonare fino a che non lo si lascia.
Grazie.
Inviato da 
www.mynewsgate.net

Pensoche sia meglio usare gli eventi OnMouseDown per l'inizio della
riproduzione della nota e successivamente OnMouseUp per l'interruzione.
Bye
Claudio.

Grazie.
	Ciao
	MassimoB
 
---------------------------
http:\\
www.massimobeschi.it

tempo farò delle prove ... se provi prima tu fammi
ho provato con una demo molto semplice con i Thread e
non va :(
non ho debug affondo ma i problemi potrebbero essere
due:
1) come detto, beep e sincrono, quindi finchè bippa il
thread non può essere sospeso o distrutto.
2) una volta che l'OS ha ricevuto il messaggio di beep,
indipendentemente dal chi ha inviato il messaggio (il
ThreadBeep in questo caso) lo porta a termine, cioè lo
fa suonare per la Duration.
Farò altre prove domani, ora devo proprio scappare, da
noi è la Festa del Santo della città San Nicola (Bari)
:).


Grazie a tutti, proverò quello che ha detto Lippo (non ci avevo pensato), 
volendo potrebbe andare anche bene, vi farò sapere cosa combino.
Ciao.
Inviato da 
www.mynewsgate.net

Ho fatto un po' di prove e ho visto che quando viene innescato il beep il 
sistema è 'bloccato' fino alla fine del tempo impostato, allora ho 
trovato un PDJButton (su torry tempo fà) dove è possibile attivare la 
ripetizione dell'evento quando si tiene premuto il bottone.
In sostanza io imposto il beep alla frequenza che mi interessa per quella 
nota e una durata di circa 40/50 millisecondi, poi nel bottone imposto a 
true il Repeat e l'intervallo lo metto a circa 40/50 millisecondi, 
inquesto modo se si preme suona e se si tiene premuto continua a suonare 
fino a che non si rilascia e quando si rilascia smette immediatamente. 
Naturalmente il suono non è un beep pulito perchè è un continuo 
innescarsi, quindi è simile a 'ppprrrrr', infatti bisogna giocare sui 
millisecondi della durata e della ripetizione del bottone per trovare la 
giusta misura e far sentire poco il 'pprrr', però è comunque accettabile 
per quello che devo fare.
Vi terrò informati.
Inviato da 
www.mynewsgate.net

[...]
prova questo componente ... la demo che forniscono
sembra veramente accattivante, sia dal punto di vista
sonoro, che ovviamente dipende dal banco di suoni midi
che usa la tua sheda, sia dal punto di vista delle
funzionalità già implementate che potresti copiare ed
incollare ... :) giocando con il sustain puoi simulare
un pianoforte e la durata poi c'è un bottone stop che
ti interrompe la nota, potresti copiare l'evento e
metterlo sul tuo OnButtonUp ed il gioco è fatto ...
http://www.torry.net/vcl/mmedia/audio/tmidigen.zip
è il secondo che ho trovato con una ricerca su
torry.net
 con le parole "play note" su componenti con
codice sorgente ... io mi sono fermato li, poi se trovi
di meglio fammi sapere, magari una demo già con la
tastierina bell'e fatta, non dovrai scriverne proprio
di codice ... anzi forse dovrai toglierlo ;)


Che pirla!! non so perchè sono partito con il windows.beep quando si può 
usare il midi, e pensare che come hobby suono la tastiera via midi con un 
sequencer apposito.....:-(((proprio non ci avevo minimanete pensato.
Grazie per il link, il demo sembra interessante perchè i bottoni eseguono 
il suono alla pressione, appena ho tempo ci smanetto per vedere il codice 
cosa fà.
Vi farò sapere.
Inviato da 
www.mynewsgate.net