📄 main.~pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer, DB, DBTables, StdCtrls, Grids, DBGrids, DateUtils;
const tempfn = 'temp.wav';
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
MediaPlayer1: TMediaPlayer;
DBGrid1: TDBGrid;
btnLoad: TButton;
btnSave: TButton;
OpenDialog1: TOpenDialog;
btnAdd: TButton;
procedure btnLoadClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnLoadClick(Sender: TObject);
var
ms:TMemoryStream;
fn:String;
begin
if Opendialog1.Execute and
FileExists(Opendialog1.FileName) then
begin
fn := Opendialog1.FileName;
ms:=TMemoryStream.Create;
try
//读取声音文件
ms.LoadFromFile(fn);
//进入编辑状态
With Table1 do
begin
if not (State in [dsInsert, dsEdit]) then
Edit;
//保存二进制文件
FieldByName('Name').AsString := ExtractFileName(fn);
FieldByName('Date').AsDateTime := Today;
FieldByName('Time').AsDateTime := Now;
(FieldByName('Value') as TBlobField).LoadFromStream(ms);
//(FieldByName('Value') as TBlobField).LoadFromFile(fn);
Post;
end;
finally
ms.Free;
end;
end;
end;
procedure TForm1.btnAddClick(Sender: TObject);
begin
Table1.Append;
Table1.Post;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
MediaPlayer1.FileName := 'right.wav';
MediaPlayer1.Open;
end;
procedure TForm1.btnSaveClick(Sender: TObject);
begin
With Table1 do
if State in [dsInsert, dsEdit] then
Post;
end;
procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
var
path:String;
ms: TMemoryStream;
begin
//如果是播放按钮,则播放音乐
if Button = btPlay then
begin
path := ExtractFilePath(Application.ExeName);
ms := TMemoryStream.Create;
try
table1.Edit ;
//(Table1.FieldByName('Value') as TBlobField).SaveToFile(Path+tempfn);
(Table1.FieldByName('Value') as TBlobField).SaveToStream(ms);
ms.SaveToFile(Path+tempfn);
finally
ms.Free;
end;
With MediaPlayer1 do
begin
FileName := Path + tempfn;
Open ;
Play ;
end;
end;
//如果是停止按钮,则关闭当前文件
if Button = btStop then
begin
With MediaPlayer1 do
begin
CLose;
FileName := Path + 'right.wav';
Open;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -