11 2009 档案
Delphi 的编码与解码(或叫加密与解密)函数
摘要:EncdDecd 单元: EncodeString、DecodeString、EncodeBase64、DecodeBase64uses EncdDecd;const str = '万一的 Delphi 博客';procedure TForm1.Button1Click(Sender: TObjec... 阅读全文
posted @ 2009-11-13 16:15 万一 阅读(18758) 评论(22) 推荐(1)
反转内存的函数
摘要://按单字节反转内存的函数procedure ReverseMemory(P: PByte; Len: Integer); overload;var B: Byte; P2: PByte;begin P2 := P; Inc(P2, Len - 1); while Integer(P) 阅读全文
posted @ 2009-11-12 16:49 万一 阅读(3159) 评论(9) 推荐(0)
操作 Wave 文件(15): 合并与剪裁 wav 文件
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button... 阅读全文
posted @ 2009-11-12 16:09 万一 阅读(3783) 评论(5) 推荐(0)
如何打开记事本并显示指定内容 - 回复 "苦苦苦" 的问题
摘要:问题来源: http://www.cnblogs.com/del/archive/2009/10/27/1590975.html#1696167procedure TForm1.Button1Click(Sender: TObject);var hEdit: HWND; str: string;begin str := '准备要添加到记事本的字符串'; WinExec('Notepad.e... 阅读全文
posted @ 2009-11-12 13:05 万一 阅读(3299) 评论(18) 推荐(0)
操作 Wave 文件(14): waveOutSetPlaybackRate、waveOutSetPitch
摘要:这两个参数也都是可以 Get(waveOutGetPlaybackRate、waveOutGetPitch)设备默认的播放速度是 $00010000, 此值乘以 2 是快一倍, 除以 2 是慢一倍; 最快可到 $000F8000.设备默认的音高参数是 $00010000, 此值乘以 2 是高一倍, 除以 2 是低一倍; 最高可到 $000F8000.可能有很多声卡不支持, 我的 IBM 手提就不支... 阅读全文
posted @ 2009-11-11 23:18 万一 阅读(3331) 评论(3) 推荐(0)
操作 Wave 文件(13): waveOutGetVolume、waveOutSetVolume
摘要:左右声道的音量是单调的; 表示音量的 32 位整数的低 16 位是左声道、高 16 位是右声道.代码文件:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm)... 阅读全文
posted @ 2009-11-11 21:52 万一 阅读(4723) 评论(0) 推荐(0)
操作 Wave 文件(12): 使用 waveOut...重复播放 wav 文件
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton... 阅读全文
posted @ 2009-11-11 17:05 万一 阅读(3123) 评论(0) 推荐(0)
操作 Wave 文件(11): 使用 waveIn...函数录制 wav 文件
摘要:使用窗口接受音频设备发出的消息:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; ... 阅读全文
posted @ 2009-11-11 15:14 万一 阅读(4248) 评论(2) 推荐(1)
关于动态数组指针操作的两个例子
摘要:最近突然感觉 Delphi 的动态数组非常好用, 善用它可以省略很多 GetMem、ReallocMem; 并且它是被自动维护的.动态数组变量 arr 本身就是指针, 不能再用 @arr 获取;但要获取某个元素位置的指针, 应该是 @arr[x]; 但随着数组的再分配, 这个地址是变化的.//动态数组地址测试var i: Integer; arr: TBytes; p: PByte;begi... 阅读全文
posted @ 2009-11-11 13:29 万一 阅读(4162) 评论(5) 推荐(0)
操作 Wave 文件(10): 输入输出设备与格式支持
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) ListBox1: TListBox; ListBox2: TListBox; Button1: TBu... 阅读全文
posted @ 2009-11-11 10:20 万一 阅读(2694) 评论(0) 推荐(0)
操作 Wave 文件(9): 使用 waveOut... 函数播放 wav 文件
摘要:下面是使用低级音频函数播放 wav 的两个方法, 对这个感兴趣的人恐怕很少, 免注释了.使用窗口接受音频输出设备的消息:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class... 阅读全文
posted @ 2009-11-10 18:18 万一 阅读(3955) 评论(0) 推荐(0)
操作 Wave 文件(8): 使用 TMediaPlayer 录制 wav 文件
摘要:TMediaPlayer 录音是基于一个已存在的 wav 文件, 上次建立空白 wav 的函数可派上用场了.TMediaPlayer 的功能是基于 MCI 的, 都是该淘汰的东西了, 只是简单了解下.接下来还要学习用 waveIn...系列函数录音、用 DirectSound 录音.unit Unit1;interfaceuses Windows, Messages, SysUtils, Var... 阅读全文
posted @ 2009-11-10 13:48 万一 阅读(2753) 评论(1) 推荐(0)
操作 Wave 文件(7): 建立一个空的 Wave 文件(三种方法)
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end;var Form1: TForm1... 阅读全文
posted @ 2009-11-10 00:17 万一 阅读(2946) 评论(0) 推荐(0)
如何在定义局部变量时赋初始值
摘要:局部变量不像全局变量可赋初始值, 但可以通过编译指令把指定类型的常量当作变量用, 如:const{$J+} num: Integer = 1;{$J-}begin Inc(num); ShowMessage(IntToStr(num)); {2}end;//或者写作:const{$WRITEABLECONST ON} num: Integer = 1;{$WRITEABLECONST OF... 阅读全文
posted @ 2009-11-09 18:12 万一 阅读(9510) 评论(3) 推荐(0)
操作 Wave 文件(6): 获取 Wave 文件的波形数据
摘要:读取函数及测试代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(S... 阅读全文
posted @ 2009-11-07 00:05 万一 阅读(3589) 评论(5) 推荐(0)
操作 Wave 文件(5): 获取 Wave 文件的格式信息
摘要:装载格式信息的结构有:能看出它们是依次递增一个字段, 并且也是 Wave 文件的一个构成部分; 现在要做的就是从 Wave 文件中把它们取出来.获取函数及测试代码: 阅读全文
posted @ 2009-11-06 23:34 万一 阅读(2774) 评论(0) 推荐(0)
操作 Wave 文件(4): 获取 Wave 文件主块与子块的信息
摘要:有两个相关的结构体: TMMIOInfo、TMMCKInfo.TMMIOInfo 是多媒体文件打开后的状态信息, mmioOpen 函数的第二个参数就是这个结构的指针.现在先用到了 TMMCKInfo, 这是文件内部 "块" 的信息, 构成如下:TMMCKInfo = record ckid: FOURCC; {块标识} cksize: DWORD; {块大小} fccType: FOURC... 阅读全文
posted @ 2009-11-06 18:09 万一 阅读(2105) 评论(0) 推荐(0)
操作 Wave 文件(3): 接触 mmio 系列函数
摘要:mmio 系列函数用于 Wave 等多媒体文件的 I/O 操作, 相关函数有:mmioOpenmmioClosemmioReadmmioWritemmioFlushmmioSeekmmioRenamemmioGetInfommioSetInfommioCreateChunkmmioAscendmmioDescendmmioAdvancemmioSetBuffermmioStringToFOURCC... 阅读全文
posted @ 2009-11-06 15:26 万一 阅读(4074) 评论(0) 推荐(0)
操作 Wave 文件(2): 判断一个文件是否是 Wave 文件
摘要:Wave 文件的前 12 个字节可以这样描述:TRiff = record ckId : DWORD; {'RIFF'} ckSize : DWORD; {文件大小, 不包括前 8 个字节} fccType : DWORD; {'WAVE'}end;我们读出文件的前 12 个字节进行判断, 就基本可以确认它是不是 Wave 文件.uses MMSystem, IOUtils; {这里准备用... 阅读全文
posted @ 2009-11-06 12:11 万一 阅读(2691) 评论(1) 推荐(0)
操作 Wave 文件(1): 关于 Wave 文件的基础知识与文件格式
摘要:最近准备学习 DirectSound、DirectMusic、DirectShow, 但刚一接触就碰到了关于 Wave 文件的诸多问题, 只好先回头学学 Wave 文件.Wave 文件的基础知识经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo : 每秒钟有 44100 次采样, 采样数据用 16... 阅读全文
posted @ 2009-11-06 02:56 万一 阅读(4186) 评论(7) 推荐(0)
系统默认语言与系统支持的语言列表
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; Bu... 阅读全文
posted @ 2009-11-02 11:56 万一 阅读(4041) 评论(3) 推荐(0)
几个和当前路径相关的新函数
摘要:偶然从 SysUtils 里发现了几个路径相关的函数, 以前没见过, 可能是 2010 新增的:GetLocaleDirectory();GetLocaleFile();LocaleDirectoryExists();LocaleFileExists();应用测试:uses IOUtils;procedure TForm1.FormCreate(Sender: TObject);var p,f:... 阅读全文
posted @ 2009-11-02 01:00 万一 阅读(6850) 评论(2) 推荐(1)