查找返回两个TDateTime值之间的秒差的代码示例.具体来说,我试图比较两个TDateTime值,如果大于第二个阈值,它将运行一个特定的方法.
谢谢!
我们最近开始创建64位构建的应用程序.在比较测试期间,我们发现64位构建的计算方式不同.我有一个代码示例,演示了两个版本之间的差异.
var
currPercent, currGross, currCalcValue : Currency;
begin
currGross := 1182.42;
currPercent := 1.45;
currCalcValue := (currGross * (currPercent * StrToCurr('.01')));
ShowMessage(CurrToStr(currCalcValue));
end;
Run Code Online (Sandbox Code Playgroud)
如果您在32位版本中逐步执行此操作,则使用17.1451计算currCalcValue,而使用17.145返回64位版本.
为什么64位构建不计算额外的小数位?所有变量都定义为4个十进制货币值.
在Delphi中,从TObject下降的变量的记录行为是默认值nil.但是,我遇到的情况并非如此.
通过IDE(F9)运行以下代码示例会得到混合结果
var
objTemp : TMemDataSet;
begin
if (objTemp = nil) then
ShowMessage('Nil');
end;
Run Code Online (Sandbox Code Playgroud)
我的理解是值应始终默认为零.
还在XE2和XE5下对此进行了测试,结果相同.
这是Delphi中的预期行为吗?
我们在许多客户端计算机上运行Delphi 7应用程序.最近,一些客户端计算机开始使用Microsoft Security Essentials.它开始将我们的可执行文件识别为恶意软件并立即将其关闭.MS Security essentials显示的消息是:
"Security Essentials在您的PC上检测到它无法识别的项目......"
奇怪的是它并不总是出现在应用程序中的相同选项.您可以在后续登录时执行相同的操作,有时它可以正常工作,有时安全要件会将其关闭.这使我们很难在我们的应用程序中缩小到特定原因.
我尝试使用提升的帐户权限运行应用程序,但仍然能够使其失败.在运行相同应用程序的Delphi XE2编译时,我无法复制该问题.
关于要寻找什么的任何想法? 我们真的试图避免将我们的应用程序添加到Security Essentials排除列表中.我们的应用程序从未被确定为不同安全程序(norton,mcaffee等)的问题.
我们将Delphi 7的应用程序移植到Delphi 2010,并且客户在Windows XP下运行时遇到间歇性BSOD(蓝屏死机)错误.错误是非常零星的,并且很难追查.仅供参考:我们正在使用Delphi 2010的内置内存管理器.
我们首先想到的是硬件问题,但升级系统驱动程序无法解决问题.
有没有其他人在使用Delphi 2010生成的应用程序的XP下遇到BSOD问题?如果是这样,您对我们如何纠正此问题有任何建议吗?
谢谢你的协助!
我在使用Delphi XE2中的TidFTP组件下载文件时遇到问题.我能够连接到FTP站点,获取文件列表并执行get命令.但是,当我尝试使用get命令下载文件时,文件的下载量始终大于源文件.然后后续文件已损坏.
此外,如果我尝试下载多个文件,则会下载第一个文件(大于源文件),并跳过其余文件.get命令不会抛出任何错误,它只是退出.我试图挂钩TIDFTP控件上的一些事件,如AfterGet和OnStatus,但一切看起来都很正常.
我尝试使用第三方FTP客户端访问该文件并下载它只是为了确保它不是我们的FTP服务器的问题,并且该下载按预期工作.所以我认为它可能与TidFTP控件有关,或者我可能做错了什么.
这是我用来下载文件的例程:
var
ftp: TIdFTP;
strDirectory: string;
begin
ftp := TIdFTP.Create(nil);
try
ftp.Host := 'ftp.myftpserver.com'
ftp.Passive := false;
ftp.Username := 'TestUser';
ftp.Password := 'TestPassword';
ftp.ConnectTimeout := 1000;
ftp.Connect();
ftp.BeginWork(wmRead);
ftp.ChangeDir('/TestArea/');
strDirectory := 'c:\test\';
if not DirectoryExists(strDirectory) then
CreateDir(strDirectory);
ftp.Get('Test.zip', strDirectory + '\' + 'Test.zip', true, false);
ftp.Disconnect();
except
on e: exception do
showMessage(e.message);
end;
end;
Run Code Online (Sandbox Code Playgroud) 我们正在使用 Delphi XE5 将应用程序套件迁移到 64 位。在“关于”框中,我们显示 CPU 速度。我们当前使用的例程是 32 位汇编,因此无法在 64 位下编译。
有没有一种本地方法可以从 Delphi 64 位中检索 CPU 速度?
delphi ×7
delphi-xe2 ×3
32bit-64bit ×1
64-bit ×1
bsod ×1
delphi-2010 ×1
delphi-7 ×1
delphi-xe5 ×1
indy ×1