Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
typeEMyMCIException = class
(Exception); var
FDeviceID: Word; MyError, dwFlags: Longint; procedure
TForm1.GetWaveLength; var
WaveLen: DWORD; begin
OpenMedia('C:Hickory.wav'); SetMediaTimeFormat; WaveLen := GetMediaStatus(MCI_STATUS_LENGTH); CloseMedia; Form1.label1.Caption := IntToStr(WaveLen) + 'mS'; end
; procedure
TForm1.OpenMedia(FileName: string
); var
MyOpenParms: TMCI_Open_Parms; begin
with
MyOpenParms do
begin
dwCallback := Handle; // TForm1.Handle lpstrDeviceType := PChar('WaveAudio'); lpstrElementName := PChar(FileName); end
;
{with MyOpenParms} dwFlags := MCI_WAIT orMCI_OPEN_ELEMENT or
MCI_OPEN_TYPE; MyError := mciSendCommand(0, MCI_OPEN, dwFlags, Longint(@MyOpenParms));
// one could use mciSendCommand(DevId, etc here to specify a particular device ifMyError = 0 then
FDeviceID := MyOpenParms.wDeviceID else
raise
EMyMCIException.Create('Open Failed'); end
; procedure
TForm1.SetMediaTimeFormat; var
MySetParms: TMCI_Set_Parms; begin
if
FDeviceID <> 0 then
begin
dwFlags := MCI_WAIT or
MCI_SET_TIME_FORMAT; MySetParms.dwCallback := Handle;
// TForm1.Handle MySetParms.dwTimeFormat := MCI_FORMAT_MILLISECONDS; MyError := mciSendCommand(FDeviceID, MCI_SET, dwFlags, Longint(@MySetParms)); ifMyError <> 0 then
raise
EMyMCIException.Create('Status Failed'); end
; end
; function
TForm1.GetMediaStatus(StatusItem: DWORD): DWORD; var
MyStatusParms: TMCI_Status_Parms; begin
if
FDeviceID <> 0 then
begin
dwFlags := MCI_WAIT or
MCI_STATUS_ITEM; MyStatusParms.dwCallback := Handle;
// TForm1.Handle MyStatusParms.dwItem := StatusItem; MyError := mciSendCommand(FDeviceID, MCI_STATUS, dwFlags, Longint(@MyStatusParms)); ifMyError = 0 then
Result := MyStatusParms.dwReturn else
begin
raise
EMyMCIException.Create('Status Failed'); end
; end
; end
; procedure
TForm1.CloseMedia; var
MyGenParms: TMCI_Generic_Parms; begin
if
FDeviceID <> 0 then
begin
dwFlags := 0; MyGenParms.dwCallback := Handle;
// TForm1.Handle MyError := mciSendCommand(FDeviceID, MCI_CLOSE, dwFlags, Longint(@MyGenParms)); ifMyError = 0 then
FDeviceID := 0 else
begin
raise
EMyMCIException.Create('Close Failed'); end
; end
; end
;