⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 Delphi7数据库开发教程,包含该书21套实例
💻 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 + -