Tag: delphi

世界上有多less德尔菲用户?

几年前,在一个新闻组的线程中,迈克尔·斯温德尔(Michael Swindell)透露说,delphi有大约175万单身用户( 点击这里查看线程 )。 今天是什么状态? 有人能告诉我们Delphi社区是如何演变的吗? 迈克尔? 缺口? 其他人? 问题重新开放。 下面的OP评论有助于解释为什么,值得在这里IMO(弗朗索瓦): 问题的目标是要知道delphi是否仍然有坚实的用户基础。 在我的公司,我们需要重写很多遗留的应用程序。 delphi似乎是一个非常好的select,但要说服我的老板,我需要certificatedelphi不仅仅是幸存下来的。 所以我不认为我的问题到目前为止还没有编程。

刷新,更新和重画有什么区别?

我不知道这三种方法哪一种最适合我。 他们都为我工作。 有谁知道刷新,更新和重画之间的区别?

为什么一个Delphi程序员使用Lazarus作为IDE而不是使用Delphi的IDE?

我一直很高兴用Delphi编程的Delphi IDE。 但是我听说过Lazarus编程环境,我也听说有些Delphi程序员使用它而不是Delphi IDE。 Lazarus对Delphi IDE有什么优势,为什么还是应该让Delphi程序员改用它呢? 答案给我留下了比以前更多的问题。 对于Lazarus是否可以用作开发Delphi代码的编辑器似乎存在一些分歧。 我想我以为你可以把所有东西都留在Delphi中,只是改变IDE。 Lazarus Wiki的Delphi用户部分的Lazarus说: 转换一个Delphi项目时要做的第一件事 打开Lazarus之后,你应该去Tools,然后把Delphi Project转换成Lazarus Project。 这不会为你做任何事情,但仍然会带你一个很好的方式。 请注意,Lazarus IDE的转换工具通常是单向转换。 如果你需要保留Delphi的兼容性,那么你可以用Delphi和Lazarus编译你的项目,可以考虑用XDev Toolkit来转换你的文件。 因为拉撒路是自由的并不是转换的理由,但是不要因为转换而在实体中惩罚你。 (你仍然需要投入时间进行转换和学习,时间= $)。 我从你的答案中得出了我所理解的结论,即为什么有人可能从delphi转向拉撒路:显然它必须提供delphi当前不能做的事情。 目前这是多平台支持和可能的64位支持。 delphi曾经有过Kylix,但没有Mac支持。 但是Embarcadero公司很快答应了他们的这个要求,并且答复了我的问题,告诉我没有理由(至less对我来说)要切换。

标准的URL编码function?

是否有一个delphi等同于.net的方法: Url.UrlEncode() 注意 delphi已经有好几年了。 当我通读答案时,我注意到当前标记的答案有几个备注和备选scheme。 我没有机会testing他们,所以我把我的答案build立在最有利的方面。 为了您自己的利益,请检查后面的答案,并决定upvote最好的答案,所以每个人都可以从您的经验中受益。

是否有可能写扩展到Delphi的debugging器?

我知道有一个用于创buildDelphi扩展的API。 我经常使用GExperts软件包和各种JVC专家。 但是我从来没有见过debugging器的任何扩展。 例如,能够为各种对象注册查看器而不必在检查器中检查它们将是非常好的。 (具有显示TImage的图像控件的窗体,或显示数据集内容的网格)。 有没有什么API可以让你用这种方式扩展Delphi的debugging器? 编辑:当我写这个问题时,这是不可用的,但Delphi 2010提供了一个方法来做到这一点。

在屏幕上有很多控件时,严重的FireMonkey性能问题

我们已经在办公室与FireMonkey合作了。 过了一段时间,我们注意到,由于Embarcadero告诉我们,GPU加速并不是那么快。 所以我们build立了一个基本的应用程序来testingFireMonkey的性能。 基本上它是一个窗体底部(alBottom)作为状态栏和所有客户端(alClient)面板。 底部的面板有一个进度条和一个animation。 我们在表单中添加了一个方法,释放所有客户端面板中存在的任何控件,并使用自定义types和“鼠标hover”样式的单元格来完成此操作,并使用有关信息的信息更新animation,进度条和表单标题实现进展。 最重要的信息是所需的时间。 最后,我们将这种方法添加到窗体的OnResize中,运行应用程序并最大化窗体(1280×1024)。 XE2的结果真的很慢。 花了大约11秒。 此外,由于面板被满足,直到应用准备好接收用户input,所以还有约10秒的延迟(如冻结)。 总共21秒。 XE3的情况最糟糕。 对于同样的操作,总共需要25秒(14 + 11秒)。 而传言说XE4将会是XE3中最糟糕的一个。 考虑到应用程序完全相同,使用VCL代替FireMonkey并使用SpeedButtons以获得相同的“鼠标hover效果”仅需1.5秒! 所以这个问题显然存在于一些内部的FireMonkey引擎问题中。 我开了一个QC(#113795)和一张支付embarcadero(支付)的票,但没有任何解决办法。 我真的不明白他们怎么能忽略这么重的问题。 因为我们的企业正在成为一个制表者和一个交易断路器。 我们不能向客户提供性能差的商业软件。 早些时候或之后,我们将被迫移动到另一个平台(顺便说一句:相同的代码delphi棱镜与WPF需要1.5秒作为VCL之一)。 如果有人对如何解决这个问题有任何想法,或试图提高这个testing性能,并想帮助,我会真的很高兴。 先谢谢你。 布鲁诺·弗拉蒂尼 该应用程序是以下一个: unit Performance01Main; interface uses System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects; const cstCellWidth = 45; cstCellHeight = 21; type TCell = class(TStyledControl) private […]

哪个更好:Free还是FreeAndNil?

Free和FreeAndNil有什么区别? FreeAndNil = Free + Nil? 什么时候应该使用Free,何时应该使用FreeAndNil? 当有人能帮我的时候,我没有得到这些东西。 提前致谢。

如何获得Delphi程序使用的内存

我知道如何使用GlobalMemoryStatusEx获得系统内存的使用,但是这告诉我整个操作系统正在使用什么。 我真的希望我的程序能够报告已经分配和正在使用的内存。 在我的Delphi 2009程序中有没有办法调用Windows函数或者某个FastMM函数来查找单独由我的程序分配的内存? 重温我的问题,我现在已经通过@apenwarr将我接受的答案改为GetMemoryManagerState答案。 它产生了与我曾经使用过的GetHeapStatus函数(现在不推荐使用)相同的结果,而GetProcessMemoryInfo.WorkingSetSize给出了一个非常不同的结果。

用TOpenDialogselect一个目录

我真的很想知道我可以用TOpenDialogselect一个目录的各种方法,无论是下载一个新组件还是使用Delphi提供的组件,但最好使用Delphi提供的组件。 在此之前,我一直在使用SelectDirectory命令,但是我认为对于我的程序的用户来说,查找指定的目录会有困难。 我认为SelectDirectory是'弱',因为它可能是一个漫长的过程,当你search你想要的目录。 比如说,你想导航到Application Data目录。 在那里导航需要多长时间? 最终,用户甚至可能无法到达他们想要的目录。 我需要这样的地方,用户可以复制和粘贴目录到顶部的目录地址栏中。 谢谢你的答案。

为什么我应该关心Delphi中的RTTI?

我听说过很多关于Delphi 2010新的/改进的RTTIfunction ,但我必须承认我的无知……我不明白这一点。 我知道Delphi的每个版本都支持RTTI …我知道RTTI(运行时types信息)允许我在运行应用程序时访问types信息。 但究竟是什么意思呢? Delphi 2010的RTTI支持与.NET中的reflection相同吗? 有人可以解释为什么RTTI是有用的吗? 假装我是你尖尖的头发老板,并帮助我理解为什么RTTI很酷。 我如何在真实世界的应用程序中使用它?