' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' QMIDI ****** QMIDI Component ****** QMIDI is a media component used to play midi sequences. QMIDI Properties Field Type R/W Default ============================== ===================================== =============================== =============================== Timer QTIMER RW Control the fréquency of event OnChange. Lenght LONG R Lenght of midi sequence. State INTEGER R VD_CLOSE State of sequencer,can be MD_PLAY,MD_STOP,MD_PAUSE. FileOpen BOOLEAN R False True if a midi file is open. CurrentFrame LONG RW Position of midi sequence. Error STRING R Text error if the OPEN méthod return FALSE Volume INTEGER RW 0 QMIDI Methods Method Type Description Params ================================ ================================ ================================ ================================= Close SUB Close the midi file 0 Open FUNCTION(FileName as string) Open the midi file and return 1 True if no error Play SUB Play the midi sequence 0 Stop SUB Stop the midi sequence 0 Pause SUB Set the player in mode pause 0 QMIDI Events Event Type Occurs when... Params ================================ ================================ ================================ ================================= OnChange (position as long) Sequence position in mode play 1 QMIDI Examples '************************************************************************** '* application:player midi * '* auteur:D.Glodt * '* date:7-4-2001 * '************************************************************************** $TYPECHECK ON $Include "Rapidq.inc" $include "Object\QMidi.inc" $RESOURCE PLAYBMP as "play.bmp" $RESOURCE STOPBMP as "Stop.bmp" $RESOURCE PAUSEBMP as "Pause.bmp" $RESOURCE MIDIICO as "midi.ico" Declare Sub Play Declare Sub Stop Declare Sub Pause Declare Sub Open Declare Sub Close Declare Sub Quitter Declare Sub TrackBarChange Declare Sub PostimerOnTimer(Position as long) Dim OpenDialog as QOpenDialog OpenDialog.Filter="Fichier midi|*.mid" OpenDialog.Caption= "Selectionner une séquence" Dim midi as QMidi midi.OnChange=PostimerOnTimer midi.timer.interval=200 CREATE Form AS QFORM Caption="Midi" Width=288 Height=110 Center BorderStyle=bsSingle icoHandle=MIDIICO OnClose=Quitter CREATE MENU AS QMAINMENU CREATE FileMenu AS QMENUITEM Caption="&Fichier" CREATE Item1 AS QMENUITEM Caption="&Ouvrir" OnClick=Open END CREATE CREATE Item2 AS QMENUITEM Caption="&Fermer" OnClick=Close END CREATE CREATE Item3 AS QMENUITEM Caption="-" END CREATE CREATE Item4 AS QMENUITEM Caption="&Quitter" OnClick=Quitter END CREATE END CREATE END CREATE CREATE Panel1 AS QPANEL Left=0 Top=0 Width=281 Height=60 BevelOuter=bvNone CREATE BtPlay AS QCOOLBTN BMPHandle=PLAYBMP Left=8 Top=6 Width=28 Height=28 Flat=true Hint="Play" ShowHint=true GroupIndex=1 OnClick=Play END CREATE CREATE BtStop AS QCOOLBTN BMPHandle=STOPBMP Left=46 Top=6 Width=28 Height=28 Down=true Flat=true Hint="Stop" ShowHint=true GroupIndex=1 OnClick=Stop END CREATE CREATE BtPause AS QCOOLBTN BMPHandle=PAUSEBMP Left=84 Top=6 Width=28 Height=28 Flat=true GroupIndex=1 Hint="Pause" ShowHint=true OnClick=Pause END CREATE CREATE TrackBar1 AS QTRACKBAR TickMarks=tmBoth TickStyle=tsNone Left=2 Top=36 LineSize=0 Width=272 Height=21 OnChange=TrackBarChange END CREATE END CREATE END CREATE Form.ShowModal Sub Open If OpenDialog.Execute Then midi.close if midi.open(OpenDialog.FileName) then TrackBar1.Max=midi.lenght TrackBar1.Position=0 end if end if End Sub Sub Close midi.close End Sub Sub Play midi.play End Sub Sub Stop midi.stop TrackBar1.Position=0 End Sub Sub Pause midi.pause End Sub Sub TrackBarChange midi.currentFrame=TrackBar1.Position End Sub Sub PostimerOnTimer(Position as long) TrackBar1.Position=Position If midi.state=MD_STOP then midi.stop TrackBar1.Position=0 BtStop.Down=True end if End Sub Sub Quitter midi.close form.close End Sub ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb