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

📄 media.~pas

📁 非常丰富的delphi小程序,相信会对你有帮助
💻 ~PAS
字号:
unit Media;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, MPlayer, ExtCtrls, Grids, DBGrids, DB, ADODB, Buttons;

type
  TMediaForm = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    ADOQuery1: TADOQuery;
    OpenDialog1: TOpenDialog;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    MediaPlayer1: TMediaPlayer;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    ComboBox1: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MediaForm: TMediaForm;
  FileName,MusicName,ExName:String;
  
implementation

{$R *.dfm}

procedure TMediaForm.BitBtn1Click(Sender: TObject);
begin
  OpenDialog1.Filter:='所有文件(*.*)|*.*|';
  if OpenDialog1.Execute then
    begin
      FileName:=OpenDialog1.FileName;
      ExName:=ExtractFileExt(FileName);
      BitBtn2.Enabled:=true;
    end;
end;

procedure TMediaForm.RadioButton1Click(Sender: TObject);
Var
  Str:String;
begin
  if RadioButton1.Checked then
    begin
      Str:=extractfilepath(application.exename)+'DataBase\Media.mdb';
      ADOQuery1.Active:=false;
      ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+Str+';Persist Security Info=False';
      ADOQuery1.Active:=true;
    end;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  Str:='select * from Media';
  ADOQuery1.SQL.Add(Str);
  ADOQuery1.Open;
  DataSource1.DataSet:=ADOQuery1;
  DBGrid1.DataSource:=DataSource1;

end;

procedure TMediaForm.BitBtn2Click(Sender: TObject);
Var
  Str:String;
  Ms:TMemoryStream;
begin
  if ( (Edit1.Text<>'') and (ComboBox1.Text<>'') and (Edit2.Text<>'') ) then
    begin
      Ms:=TMemoryStream.Create;
      try
        Ms.LoadFromFile(FileName );
        Str:='insert into Media (姓名,性别,歌名,扩展名,blobMedia) values ('''+Edit1.Text+''','''+ComboBox1.Text+''','''+Edit2.Text+''','''+ExName+''',:bBlob)';
        with ADOQuery1 do
          begin
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add(Str);
            Parameters.ParamByName('bBlob').LoadFromStream(Ms,ftBlob);
            ADOQuery1.ExecSQL;
          end;
      finally
        if assigned(Ms) then
          Ms.Free;
      end;
      MessageBox(Handle,'视频文件数据保存结束!',PChar('提示'),MB_OK+MB_ICONWARNING);
      Edit1.Text:='';
      ComboBox1.Text:='';
      Edit2.Text:='';
    end
  else
    begin
      MessageBox(Handle,'请填写姓名、性别、歌名!',PChar('提示'),MB_OK+MB_ICONWARNING);
      Exit;
    end;

  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  Str:='select * from Media';
  ADOQuery1.SQL.Add(Str);
  ADOQuery1.Open;
  DataSource1.DataSet:=ADOQuery1;
  DBGrid1.DataSource:=DataSource1;
  BitBtn2.Enabled:=false;

end;

procedure TMediaForm.BitBtn3Click(Sender: TObject);
begin
  MediaPlayer1.Stop;
  MediaPlayer1.Close;
  BitBtn3.Enabled:=false;
end;

procedure TMediaForm.BitBtn4Click(Sender: TObject);
begin
  MediaPlayer1.DeviceType:=dtAutoSelect;
  MediaPlayer1.Display:=Panel1;
  MediaPlayer1.FileName:=extractfilepath(application.exename)+MusicName+ExName;
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  BitBtn3.Enabled:=true;
end;

procedure TMediaForm.DBGrid1DblClick(Sender: TObject);
Var
  Str:String;
  Ms:TMemoryStream;
  St:TStream;
begin
  MusicName:=dbgrid1.DataSource.DataSet.fieldbyname('歌名').AsString ;
  Ms:=TMemoryStream.Create;
  Str:='select 扩展名, blobMedia as bBlob from Media Where (歌名='''+MusicName+''')';
  try
    with ADOQuery1 do
      begin
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add(Str);
        ADOQuery1.Open;
        ExName:=ADOQuery1.FieldValues['扩展名'];
      end;
    St:=ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('bBlob'), bmRead );
    try
      Ms.CopyFrom(St,st.Size);
      Ms.SaveToFile(extractfilepath(application.exename)+MusicName+ExName);
    finally
      if assigned(st) then
        St.Free;
    end;
  finally
    if assigned(Ms) then
      Ms.Free;
  end;
  MessageBox(Handle,'视频文件数据读取结束!',PChar('提示'),MB_OK+MB_ICONWARNING);

  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  Str:='select * from Media';
  ADOQuery1.SQL.Add(Str);
  ADOQuery1.Open;
  DataSource1.DataSet:=ADOQuery1;
  DBGrid1.DataSource:=DataSource1;
  DBGrid1.Enabled:=false;

  BitBtn3.Enabled:=true;
  BitBtn4.Enabled:=true;
  MediaPlayer1.DeviceType:=dtAutoSelect;
  MediaPlayer1.Display:=Panel1;
  MediaPlayer1.FileName:=extractfilepath(application.exename)+MusicName+ExName;
  MediaPlayer1.Open;
  MediaPlayer1.Play;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -