AVI player

En AVI-spiller for DelphiContributor: ANDREA MOLINOThis er en kontroll for å spille avi files.unit AVICtrl; grensesnitt {TAVIControl V 0.9b Programmert av Andrea Molino [email protected]}uses Windows, Meldinger, SysUtils, Klasser, grafikk, kontroller, CommCtrl; Type TAVIControlState = (acsClose, acsOpen, acsPlay); TAVIControlError = (acrOK, acrOpenFailed, acrPlayFailed, acsSeekFailed); TAVIControl = klasse (TWinControl) private FAVIState: TAVIControlState; FAVIName: String; FFrameFrom: SMALLINT; FFrameTo: SMALLINT; FFrameSeek: SMALLINT; FAutoSize: Boolean; FAutoRepeat: Boolean; FLastOpStatus: TAVIControlError; Faux: String; Prosedyre SetAVIState (Val: TAVIControlState); Prosedyre SetAVIName (Val: String); Prosedyre SetFrameFrom (Val: SMALLINT); Prosedyre SetFrameTo (Val: SMALLINT); Prosedyre SetFrameSeek (Val: SMALLINT); Prosedyre SetAutoSize (Val: Boolean); Prosedyre SetAutoRepeat (Val: Boolean); Funksjon GetLastOpStatus: String; beskyttet prosedyre CreateParams (Var Params: TCreateParams); Styre; prosedyre CreateWnd; Styre; offentlig Constructor Opprette (AOwner: TComponent); styre; Destructor Destroy; styre; Funksjon Open (Filename: String): Boolean; Prosedyre Lukk; Funksjon Play (fname: String; RepCount: SMALLINT): Boolean; Funksjon Seek (Frame: SMALLINT): Boolean; Prosedyre Stop; publisert Eiendom AVIState: TAVIControlState Les FAVIState Skriv SetAVIState Standard acsClose; Eiendom AVIName: String Les FAVIName Skriv SetAVIName; Eiendom FrameFrom: SMALLINT Les FFrameFrom Skriv SetFrameFrom Standard 0; Eiendom FrameTo: SMALLINT Les FFrameTo Skriv SetFrameTo Standard 1; Eiendom FrameSeek: SMALLINT Les FFrameSeek Skriv SetFrameSeek Standard 0; Eiendom AutoSize: Boolean Les FAutoSize Skriv SetAutoSize Standard False; Eiendom AutoRepeat: Boolean Les FAutoRepeat Skriv SetAutoRepeat Standard sant; Eiendom ZStatus: String Les GetLastOpStatus Skriv Faux; Eiendommen Align; Eiendommen Enabled; Eiendommen PopupMenu; Eiendommen ShowHint; Eiendommen Synlig; Eiendommen OnMouseDown; Eiendommen OnMouseMove; Eiendommen OnMouseUp; enden, prosedyre Registrer; implementationConstructor TAVIControl.Create (AOwner: TComponent); Begynn arvet Opprette (AOwner); ControlStyle: = ControlStyle - [csSetCaption]; FAVIState: = acsClose; FFrameFrom: = 0; FFrameTo: = -1; FAutoSize: = False; FAutoRepeat: = true; FLastOpStatus: = acrOK; Bredde: = 30; Høyde: = 30; End, Destructor TAVIControl.Destroy; Begin Arvet Destroy, End, prosedyre TAVIControl.CreateParams (var params: TCreateParams); begin {ACS_AUTOPLAY - begynner å spille animasjonen så snart animasjonsklipp åpnes. ACS_CENTER - Midtstiller animasjon i vinduet animasjonen kontrollens. ACS_TRANSPARENT - Tegner animasjonen bruker en gjennomsiktig bakgrunn i stedet for bakgrunnsfargen som er angitt i animasjonsklipp} InitCommonControls;. Arvet CreateParams (params); CreateSubClass (Params, 'SysAnimate32'); Med Params trenger Begynn Stil: = stil eller ACS_TRANSPARENT; Hvis ikke FAutoSize Så Stil: = stil eller ACS_CENTER; Slutten; ende; prosedyre TAVIControl.CreateWnd; begynner Arvet CreateWnd; Hvis FAVIState = acsOpen Så Open (FAVIName); Hvis FAVIState = acsPlay deretter begynne Open (FAVIName); Play ('', 0); Enden, enden, Prosedyre TAVIControl.SetAVIState (Val: TAVIControlState); begynner Hvis Val < > FAVIState deretter begynne FAVIState: = Val; Tilfellet FAVIState Of acsOpen: Begynn Open (FAVIName) End; acsPlay: Begynn Open (FAVIName); Play ('', 0); Slutt; acsClose: Lukk; Slutt; Enden, enden, Prosedyre TAVIControl.SetAVIName (Val: String); Var FTmpState: TAVIControlState; begynner Hvis Val < > FAVIName deretter begynne FAVIName: = Val; FTmpState: = FAVIState; Lukke; Hvis FTmpState = acsOpen Så Open (FAVIName); Hvis FTmpState = acsPlay Så Play ('', 0); Enden, enden, Prosedyre TAVIControl.SetFrameFrom (Val: SMALLINT); begynner Hvis Val < > FFrameFrom deretter begynne FFrameFrom: = Val; Hvis FAVIState = acsPlay Så Play ('', 0); Enden, enden, Prosedyre TAVIControl.SetFrameTo (Val: SMALLINT); begynner Hvis Val < > FFrameTo deretter begynne FFrameTo: = Val; Hvis FAVIState = acsPlay Så Play ('', 0); Enden, enden, Prosedyre TAVIControl.SetFrameSeek (Val: SMALLINT); begynner Hvis Val < > FFrameSeek deretter begynne FFrameSeek: = Val; Seek (FrameSeek); Enden, enden, Prosedyre TAVIControl.SetAutoSize (Val: Boolean); begynner Hvis Val < > FAutoSize deretter begynne FAutoSize: = Val; RecreateWnd; Enden, enden, Prosedyre TAVIControl.SetAutoRepeat (Val: Boolean); begynner Hvis Val < > FAutoRepeat deretter begynne FAutoRepeat: = Val; Hvis FAVIState = acsPlay Så Play ('', 0); Enden, enden, Function TAVIControl.GetLastOpStatus: String; Begynn sak FLastOpStatus Of acrOK: Resultat: = 'OK'; acrOpenFailed: Resultat: = 'Åpen Feilet'; acrPlayFailed: Resultat: = 'Play Feilet'; Enden, enden, Function TAVIControl.Open (Filename: String): Boolean; Var Res: LongInt; Begynn FLastOpStatus: = acrOK; Hvis FAVIState < > acsClose Så Lukk; Res: = Sendmessage (håndtak, ACM_OPEN, 0, LongInt (PChar (Filename))); FAVIName: = Filename; Hvis Res < > 0 Then FAVIState: = acsOpen Else FLastOpStatus: = acrOpenFailed; Resultat: = (Res < > 0); End, Prosedyre TAVIControl.Close; Var Res: LongInt; Begynn FLastOpStatus: = acrOK; Res: = Sendmessage (håndtak, ACM_OPEN, 0, 0); FAVIState: = acsClose; Male, End, Function TAVIControl.Seek (Frame: SMALLINT): Boolean; Var Res: LongInt; Begynn FLastOpStatus: = acrOK; Hvis FAVIState = acsClose Så Open (FAVIName) Else hvis FAVIState = acsPlay deretter stoppe; Hvis FAVIState < > acsClose deretter begynne Res: = Sendmessage (håndtak, ACM_PLAY, 1, MAKELONG (Frame, Frame)); Hvis Res = 0 Then FLastOpStatus: = acsSeekFailed; Resultat: = (Res < > 0); Slutt Else Resultat: = False; ende; Function TAVIControl.Play (fname: String; RepCount: SMALLINT): Boolean; Var Res: LongInt; Rep: SMALLINT; Begynn FLastOpStatus: = acrOK; Hvis fname = '' Så Open (FAVIName) Else Open (fname); Hvis FAVIState < > acsClose Deretter begynner Hvis FAutoRepeat Og (RepCount = 0) Så Rep: = -1 Else Hvis RepCount = 0 Then Rep: = 1 Else Rep: = RepCount; Res: = Sendmessage (håndtak, ACM_PLAY, Rep, MAKELONG (FFrameFrom, FFrameTo)); If (Res < > 0) Og FAutoRepeat Så FAVIState: = acsPlay Else FLastOpStatus: = acrPlayFailed; Resultat: = (Res < > 0); Avslutt Else Resultat: = False, End, Prosedyre TAVIControl.Stop; Var Res: LongInt; Begynn FLastOpStatus: = acrOK; Hvis FAVIState < > acsClose deretter begynne Res: = Sendmessage (håndtak, ACM_PLAY, 0, MAKELONG (0, 0)); Hvis FAVIState = acsPlay Så FAVIState: = acsOpen; Enden, enden, prosedyre Registrer; begynne RegisterComponents ('MyGold', [TAVIControl]); end;. Slutten Anmeldelser



Previous:
Next Page: