首先:这不是Delphi和SAPI的重复.我对"Delphi中的SAPI"主题有一个具体问题.
我在Delphi 2009中使用了优秀的Import Type-Library指南来获取组件面板中的TSpVoice组件.这非常有效.同
var
SpVoice: TSpVoice;
Run Code Online (Sandbox Code Playgroud)
我可以写
SpVoice.Speak('This is an example.', 1);
Run Code Online (Sandbox Code Playgroud)
获得异步音频输出.
第一个问题
根据文档,我可以写
SpVoice.Speak('This is an example.', 0);
Run Code Online (Sandbox Code Playgroud)
获得同步音频输出,但我获得了EZeroDivide异常.为什么?
第二个问题
但更重要的是,我希望能够动态创建SpVoice对象(我认为这被称为"后期绑定"SpVoice对象),部分原因是我的应用程序的所有会话中只有一小部分会使用它,部分是因为我不想假设最终用户系统上存在SAPI服务器.
为此,我试过了
procedure TForm1.FormClick(Sender: TObject);
var
SpVoice: Variant;
begin
SpVoice := CreateOleObject('SAPI.SpVoice');
SpVoice.Speak('this is a test', 0);
end;
Run Code Online (Sandbox Code Playgroud)
显然什么也没做!(将0替换为0可以获得EZeroDivide异常.)
放弃
我是COM/OLE自动化的新手.对于我在这篇文章中所表现出的任何无知或愚蠢,我感到很抱歉......
为了让每个人遇到与我一样的问题,François的视频解释说SAPI/Windows中存在一个错误(某些地方不兼容),这使得以下代码引发了EZeroDivide异常:
procedure TForm1.FormClick(Sender: TObject);
var
SpVoice: variant;
begin
SpVoice := CreateOleObject('SAPI.SpVoice');
SpVoice.Speak('This is a text.');
end;
Run Code Online (Sandbox Code Playgroud)
视频中提供的解决方案是更改FPU控制字:
procedure TForm1.FormClick(Sender: TObject);
var
SpVoice: variant;
SavedCW: Word;
begin
SpVoice := CreateOleObject('SAPI.SpVoice'); …Run Code Online (Sandbox Code Playgroud) 如何让TComboBox包含一些禁用的项目?我需要用户查看这些项目,但无法选择它们.
谢谢!
当我在文件夹中有子文件夹时 - 此代码不是删除文件夹...是否有任何错误?
procedure TForm.Remove(Dir: String);
var
Result: TSearchRec; Found: Boolean;
begin
Found := False;
if FindFirst(Dir + '\*', faAnyFile, Result) = 0 then
while not Found do begin
if (Result.Attr and faDirectory = faDirectory) AND (Result.Name <> '.') AND (Result.Name <> '..') then Remove(Dir + '\' + Result.Name)
else if (Result.Attr and faAnyFile <> faDirectory) then DeleteFile(Dir + '\' + Result.Name);
Found := FindNext(Result) <> 0;
end;
FindClose(Result); RemoveDir(Dir);
end;
Run Code Online (Sandbox Code Playgroud) 我发现使用Delphi 2009创建的动画GIF TGIFImage有时在某些 GIF查看器中无法正常播放.问题是动画过早地重新启动.
请考虑以下示例:
program GIFAnomaly;
{$APPTYPE CONSOLE}
uses
Windows, Types, Classes, SysUtils, Graphics, GIFImg;
var
g: TGIFImage;
bm: TBitmap;
procedure MakeFrame(n: integer);
var
x: Integer;
y: Integer;
begin
for x := 0 to 256 - 1 do
for y := 0 to 256 - 1 do
bm.Canvas.Pixels[x, y] := RGB((x + n) mod 255,
(x + y - 2*n) mod 255, (x*y*n div 500) mod 255);
end;
var
i: integer;
begin
bm := TBitmap.Create;
bm.SetSize(256, 256); …Run Code Online (Sandbox Code Playgroud) 我想知道哪些选项可以根据输入图形计算器的输入类型生成.png ..所以
(y ^ 2 + 5x + 3)/((3x + 3)+ 5y + 18)
会回来的

到目前为止我唯一发现的是mediaviki中的texvc,但是为其中一个模块获取整个mediawiki似乎有些过分.
我会在我的应用程序中有一个TPanel,但另外看一下.
对于它我想要一个彩色的标题栏和向上的角落就像在一些用户界面,如它
你知道任何组件或库吗?(首选开源但不仅仅是).
我试过TJVCaptionPanel它没关系,但需要四舍五入.
真的很疯狂!我使用Far 2.0创建了一个文件(http://www.farmanager.com/,也许你可以使用其他文件管理器); 它的文件名是'C:\ 123.txt' (是的,文件路径末尾有空格).
我正在尝试使用C#程序复制或移动此文件:
File.Copy("C:\\123.txt ", "C:\\456.txt", true);
Run Code Online (Sandbox Code Playgroud)
但它失败了"无法找到文件'C:\ 123.txt'." 例外.但文件存在!
我正在尝试Windows API:
[DllImport("kernel32.dll")]
public static extern int MoveFile(string lpExistingFileName, string lpNewFileName);
MoveFile("C:\\123.txt ", "C:\\456.txt",);
Run Code Online (Sandbox Code Playgroud)
但它也失败了.
我正在尝试xcopy实用程序:
C:\>xcopy "C:\123.txt " "C:\456.txt" /Y
File not found - 123.txt
0 File(s) copied
Run Code Online (Sandbox Code Playgroud)
如何以编程方式重命名文件?为什么会发生这种情况?
我的操作系统:Windows 7 x64
在带有vsReport ViewStyle的ListView中,如何自定义任何单列标题标题的字体颜色?例如(第二列标题标题具有红色字体颜色):

因此,Ruby 有时候使用大括号而不是要求它们的宽松容忍度导致了很多混乱,因为我正在尝试学习Rails以及何时/何地使用它们以及为什么?
有时参数或值会像(@user, @comment)它们看起来那样传递,而其他时候传递[ :user => comment ]的只是::action => 'edit'
我在谈论[] vs () vs {}的我们
规则是什么?你有什么技巧可以帮助你记住吗?
我必须编写程序来计算字符串中有多少个不同的字母.例如"abc"将给出3; 而且"abcabc"也会给3,因为只有3个不同的字母.
我需要使用pascal,但是如果你可以帮助使用不同语言的代码,它也会非常好.
这是我的代码不起作用:
var s:string;
i,j,x,count:integer;
c:char;
begin
clrscr;
Readln(s);
c:=s[1];
x:=1;
Repeat
For i:=1 to (length(s)) do
begin
If (c=s[i]) then
begin
delete(s,i,1);
writeln(s);
end;
end;
c:=s[1];
x:=x+1;
Until length(s)=1;
Writeln(x);
Run Code Online (Sandbox Code Playgroud)
x是不同的字母计数器; 也许我的algorythm非常糟糕..任何想法?谢谢.
delphi ×7
windows ×2
animated-gif ×1
animation ×1
c# ×1
columnheader ×1
combobox ×1
controls ×1
curly-braces ×1
delphi-7 ×1
delphi-xe2 ×1
equation ×1
filenames ×1
gif ×1
jrubyonrails ×1
listview ×1
math ×1
panel ×1
parentheses ×1
pascal ×1
python ×1
ruby ×1
sapi ×1
string ×1
tgifimage ×1
winapi ×1