小编Jan*_*rts的帖子

Delphi的$ WARN编译器指令的标识符

Delphi有一个$ WARN编译器指令,允许用户有选择地启用或禁用特定警告.Delphi 2009帮助文件描述了语法:

{$WARN identifier ON|OFF}
Run Code Online (Sandbox Code Playgroud)

但它只列出了6个警告的标识符.

我想要一个完整的所有警告标识符列表.特别是,我想知道Delphi 2009中隐式字符串强制转换警告W1057和W1058的标识符.

我设法猜测隐含的Ansi-> Unicode转换(W1057):

{$WARN IMPLICIT_STRING_CAST OFF}
Run Code Online (Sandbox Code Playgroud)

谷歌搜索发现我另一个:

{$WARN IMPLICIT_STRING_CAST_LOSS OFF}
Run Code Online (Sandbox Code Playgroud)

虽然这解决了我的迫切需要,但我仍然想知道完整的警告标识符列表.应该记录这样的东西.

delphi warnings

46
推荐指数
4
解决办法
2万
查看次数

易于使用的正则表达式创建工具?

我尝试了一些像Regulator,Regulazy和RegexBuddy这样的正则表达式工具.他们没有做我想做的事情,他们希望用户知道正则表达式.

我想要一个傻瓜工具.你告诉我需要一个正则表达式的工具,例如"匹配以'是'结尾的任何内容,并且它至少包含一个短语'/ test /'",它会为你创建正则表达式.

所以我要么用简单的英语或半简单的英语输入我的请求,要么工具有各种现成的选择,我在它们之间做出选择来创造我想要的特别的东西.

是否有针对非开发人员的工具?我不是在寻找一个正则表达式测试器.

regex

21
推荐指数
4
解决办法
4万
查看次数

IMAGE_FILE_LARGE_ADDRESS_AWARE和3GB OS Switch

如果Windows应用程序IMAGE_FILE_LARGE_ADDRESS_AWARE在映像头中具有该集(通过/ LARGEADDRESSAWARE编译器标志),则通常允许32位应用程序使用超过2GB的内存(仅在32位操作系统已设置时才有意义) boot.ini中的3GB开关).有关详细信息,请参阅MSDN文章/ 3GB.

我的问题是,如果您在没有3GB开关设置的系统上运行此应用程序会发生什么.它被忽略了吗?或者应用程序是否会尝试使用3GB堆并获取内存不足错误,因为用户空间只有2GB可用?

我一直听到有消息称LARGEADDRESSAWARE交换机在2GB用户空间系统中被忽略,但在此无法找到任何官方的Microsoft文档.

提前致谢.

memory winapi

16
推荐指数
2
解决办法
2万
查看次数

在Windows Vista上应用程序看不到Shift + Ctrl + 0组合键

我从一个新的Delphi VCL应用程序开始,将Menus添加到uses子句,在表单上放一个标签,并指定表单的OnShortCut事件:

procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  Label1.Caption := ShortCutToText(ShortCut(Msg.CharCode, KeyDataToShiftState(Msg.KeyData)));
end;
Run Code Online (Sandbox Code Playgroud)

在XP上,这适用于我尝试过的所有快捷键组合,包括Shift+ Ctrl+ 0.在Vista和Windows 7上,测试应用程序显示Shift+ Ctrl+ 1Shift+ Ctrl+ 9,但不显示Shift+ Ctrl+ 0.其他组合如Shift+ 0,Ctrl+ 0,甚至Shift+ Ctrl+ Alt+ 0都可以正常显示.

在调试器下运行应用程序,我发现如果在按下键的同时按住ShiftCtrl键,则永远不会使用Msg.CharCode = Ord('0')触发OnShortCut事件0.

Delphi IDE在Vista下也存在同样的问题. Ctrl+ Shift+ 1设置书签1,但Ctrl+ Shift+ 0不设置书签0,它应该. …

delphi keyboard-events windows-vista

11
推荐指数
1
解决办法
3872
查看次数

Delphi'in'运算符在一组上重载

在Delphi XE2中,我试图in在记录上重载操作符,以允许我检查记录表示的值是否是集合的一部分.我的代码看起来像这样:

type
  MyEnum = (value1, value2, value3);
  MySet = set of MyEnum;
  MyRecord = record
    Value: MyEnum;
    class operator In(const A: MyRecord; B: MySet): Boolean;
  end;

class operator MyRecord.In(const A: MyRecord; B: MySet): Boolean;
begin
  Result := A.Value in B;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  R: MyRecord;
  S: MySet;
begin
  R.Value := value1;
  S := [value1, value2];
  Button1.Caption := BoolToStr(R in S);
end;
Run Code Online (Sandbox Code Playgroud)

代码无法编译.对于R in S编译器所说的语句:不兼容的类型MyRecordMyEnum.

如何重载In运算符,MyRecord以便在上面的代码中 …

delphi operator-overloading delphi-xe2

11
推荐指数
2
解决办法
1748
查看次数

Delphi中的文本到语音转换为wav

我将SAPI类型库导入Delphi.我可以使用以下代码将语音输出到PC扬声器:

procedure TForm1.Button1Click(Sender: TObject);
var
  Voice: TSpVoice;
begin
  Voice := TSpVoice.Create(nil);
  Voice.Speak('Hello World!', 0);
end;
Run Code Online (Sandbox Code Playgroud)

我可以.wav使用以下代码将语音输出到文件:

procedure TForm1.Button1Click(Sender: TObject);
var
  Voice: TSpVoice;
  Stream: TSpFileStream;
begin
  Voice := TSpVoice.Create(nil);
  Stream := TSpFileStream.Create(nil);
  Stream.Open('c:\temp\test.wav', SSFMCreateForWrite, False);
  Voice.AudioOutputStream := Stream.DefaultInterface;
  Voice.Speak('Hello World!', 0);
  Stream.Close;
end;
Run Code Online (Sandbox Code Playgroud)

问题是当我播放.wav文件时听起来很糟糕,就像使用非常低的比特率一样.Audacity告诉我文件是单声道16位22.05kHz,但听起来比这更糟糕.

如何将语音输出到单声道16位44.1kHz .wav文件,该文件与直接发送到PC扬声器的语音输出完全相同?我无法弄清楚如何修改第二个代码示例来设置每个样本的比特和比特率.

Follup-up: Glenn的答案解决了比特率的问题.感谢那.但是输出到.wav文件的语音质量仍然低于直接输出到扬声器的质量.我使用屏幕录制软件将第一个代码块的输出记录为helloworldtospeakers.wav.添加了Glenn的第二个代码块生成helloworldtowav.wav.第二个文件显然有一些失真.有任何想法吗?

delphi sapi wav

11
推荐指数
1
解决办法
2418
查看次数

在Delphi XE中构建事件宏

根据Delphi的帮助文件,当我打开对话框以将构建事件添加到项目的选项时,对话框应该显示我可以在命令行上用于构建事件的宏(占位符)列表.当我在Delphi XE中尝试这个时,宏列表是空的.帮助文件没有说明哪些宏可用(我能找到).

那么,哪些宏可用?现在我需要一个宏来获取编译.exe文件的完整路径(后期构建),以及.dproj文件的完整路径.但我希望有一个完整的可用宏列表供将来参考.

delphi build delphi-xe

10
推荐指数
1
解决办法
4254
查看次数

用于测试大数据的常见大型PST文件

我需要一大堆PST文件(可能是GB或TB),包含更多邮件来测试我的大数据应用程序.

我发现只有安然数据集.是否可以测试任何其他常见的PST文件?

分享我PST下载链接.

pst dataset

9
推荐指数
1
解决办法
6234
查看次数

常用正则表达式

是否有在线网站列出了常见的正则表达式,或者有一个实用程序可以帮助您根据示例文本创建一个?

谢谢!

.net regex

8
推荐指数
2
解决办法
5764
查看次数

适用于Delphi XE2的SafeMM

有没有人将SafeMM调试内存管理器移植到Delphi XE2?CodeCentral上2009 SafeMM将无法编译,因为RTL现在使用NativeInt而不是Integer来实现内存功能.

delphi memory-management delphi-xe2

8
推荐指数
1
解决办法
1091
查看次数