📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables,mmsystem;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Table1: TTable;
procedure FormCreate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
mem:TMemoryStream;
begin
if Table1.Eof and Table1.Bof then
begin
with Table1 do
begin
Insert;
FieldByName('Name').AsString:='惊叹号';
mem:=TMemoryStream.Create();
mem.LoadFromFile('惊叹号.wav');
TBlobField(FieldByName('Data')).LoadFromStream(mem);
Post;
Insert;
FieldByName('Name').AsString:='清空回收站';
mem:=TMemoryStream.Create();
mem.LoadFromFile('清空回收站.wav');
TBlobField(FieldByName('Data')).LoadFromStream(mem);
Post;
Insert;
FieldByName('Name').AsString:='缩到最小';
mem:=TMemoryStream.Create();
mem.LoadFromFile('缩到最小.wav');
TBlobField(FieldByName('Data')).LoadFromStream(mem);
Post;
Insert;
FieldByName('Name').AsString:='退出Windows';
mem:=TMemoryStream.Create();
mem.LoadFromFile('退出Windows.wav');
TBlobField(FieldByName('Data')).LoadFromStream(mem);
Post;
mem.Free;
end;
end;
with Table1 do
begin
First;
while not Eof do
begin
ListBox1.Items.Add(FieldByName('Name').AsString);
Next;
end;
end;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
FileName:string;
FileStream:TFileStream;
BlobStream:TStream;
begin
with Table1 do
begin
First;
while not Eof do
begin
if FieldByName('Name').AsString=ListBox1.Items[ListBox1.ItemIndex] then
break;
Next;
end;
//为字段创建BLOB数据流
BlobStream:=CreateBlobStream(FieldByName('Data'),bmRead);
if BlobStream.Size=0 then
begin
BlobStream.free;
Exit;
end;
BlobStream.Position:=0;
FileName:='Sound.tmp';
if FileExists(FileName) then
DeleteFile(FileName);
//设置临时文件名
FileStream:=TFileStream.Create(FileName,fmcreate or fmopenwrite);
//为临时文件创建文件流
FileStream.CopyFrom(BlobStream,BlobStream.Size);
//拷贝blob到临时文件中
FileStream.free;
BlobStream.free;
//释放流
PlaySound(PChar(FileName),0,SND_FILENAME + SND_ASYNC);
//播放WAVE文件
if FileExists(FileName) then
DeleteFile(FileName);
//删除临时文件
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -