Tag: delphi

如何检测真正的Windows版本?

我知道我可以调用GetVersionEx Win32 API函数来检索Windows版本。 在大多数情况下,返回值反映了我的Windows版本,但有时并不是这样。 如果用户在兼容层下运行我的应用程序,则GetVersionEx将不会报告实际版本,而是报告兼容性层执行的版本。 例如,如果我正在运行Vista并以“Windows NT 4”兼容模式执行我的程序,则GetVersionEx将不会返回6.0版本,而是4.0版本。 有没有办法绕过这种行为,并获得真正的Windows版本?

SynEdit for Firemonkey?

有没有一个与firemonkey(或其他人的工作)协同工作包? 从我可以收集的有一个VGScene端口较早(请参阅: 本网站 ),但似乎已被删除。 另见本网站 :

你最喜欢的Delphi嘲笑库是什么?

我想开始在我的Delphi项目上使用模拟对象。 快速谷歌后,我已经find了那些: delphi模拟向导 PascalMock 所以我的问题是你最喜欢的是什么?为什么?

delphi:你如何自动更新你的应用程序?

我一直在想我自己的代码,使我的Delphi应用程序无缝更新,因为我会去“经常发布,早期发布”的心态。 有各种各样的delphi解决scheme(包括免费软件和付费),我想问问你们是否使用过其中的任何一个,或者只是继续在这个领域的自己的解决scheme。 有关自动更新主题的任何意见,欢迎。

新的TFileOpenDialog和旧的TOpenDialog有什么区别?

新的TFileOpenDialog和旧的TOpenDialog有什么区别? 在我的电脑(Win 7 / DXE)中,当我运行代码时,对话框看起来是一样的。

用Delphi调用Http GET url最简单的方法是什么?

在我的应用程序中有一个Web服务需要调用,我可以在导入WSDL时使用它,或者只使用带有URL和参数的“HTTP GET”,所以我更喜欢后面的,因为它很简单。 我知道我可以使用indy idhttp.get来完成这项工作,但这是非常简单的事情,我不想将复杂的indy代码添加到我的应用程序中。 更新 :对不起,如果我不清楚,我的意思是“不添加复杂的indy代码”,我不想为这个简单的任务添加indy组件,而更喜欢更轻的方式。

如何将版本信息添加到我的控制台应用程序?

IDE的内置向导生成的控制台应用程序项目似乎无法通过IDEpipe理版本资源<- note the emphasis here 。 有没有解决方法(S)这个问题? (我甚至准备写一个OTA向导)

TSQLMonitor使用新的ODBC dbExpress驱动程序的TSQLConnection是否有一个技巧?

我一直在testingDelphi XE2附带的新的ODBC dbExpress驱动程序,并且注意到TSQLMonitor似乎不起作用。 考虑到我可能configuration了错误的组件,我把一个TSQLMonitor连接到一个使用MS SQL dbExpress驱动程序的TSQLConnection,并且像一个魅力一样工作。 我在网上看不到有关这个问题的任何文章。 有没有人注意到这个问题? 它看起来是一个错误,一个不受支持的function(在使用ODBC驱动程序的TSQLConnection上没有监视),或者在这种情况下configurationTSQLMonitor是否有技巧?

Delphi ^ A语法:logging,暗示或无证?

让我以一个例子来解释。 在Delphi中,你可以写 procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = ^C then ShowMessage('The user wants to copy something.') else if Key = ^V then ShowMessage('The user wants to paste.') end; 检查Ctrl + C和Ctrl + V键盘命令。 实际上,对于Ctrl + A,同样的语法也适用,其中A是任何字符,当然也可以使用case语句而不是if 。 你甚至可以做ShowMessage(^A) ,显然, ^A被认为是char 。 不过,在浏览官方的Delphi文档时 ,我找不到任何对此语法的引用。 但也许^A语法是如此普遍,它被理解为基础纯文本文件格式的一部分? 还是仅仅是Delphi编程语言的一个未公开的特征? (请注意,上述构造实际上是在RTL / VCL源代码中使用的,但是,Embarcadero和Embarcadero当然也可以使用未公开的特性,如果存在的话)。

在TList <T>中的Delphi XE8错误,需要解决方法

升级到XE8后,我们的一些项目开始打破数据。 看起来像TList实现中的一个错误。 program XE8Bug1; {$APPTYPE CONSOLE} uses System.SysUtils, Generics.Collections; type TRecord = record A: Integer; B: Int64; end; var FRecord: TRecord; FList: TList<TRecord>; begin FList := TList<TRecord>.Create; FRecord.A := 1; FList.Insert(0, FRecord); FRecord.A := 3; FList.Insert(1, FRecord); FRecord.A := 2; FList.Insert(1, FRecord); Writeln(IntToStr(FList[0].A) + IntToStr(FList[1].A) + IntToStr(FList[2].A)); end. 此代码在XE7中打印“123”,之前(应该是这样),但在XE8中打印“120”。 也许有人知道这个quickfix? 更新:非官方修复在这里