问题标签 [delphi-2009]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
447 浏览

delphi - 有趣的堆栈溢出!编译器错误?

我想知道我是否发现了编译器错误?我从我的应用程序中删除了一些旧代码,现在我在“开始”处获得了 stackoverflow(参见下面的代码和反汇编)。

有任何想法吗?

谢谢你!mp

0 投票
5 回答
451 浏览

delphi - 更新项目的控件显示样式不一致的表单设计器

我有一个在 Turbo Delphi 中开始的项目,我最近将其更新到 D2009,并且我注意到表单设计器中的一些怪癖。所有旧表单都应用了 Win98 样式。例如,按钮是灰色的,带有锋利的方形边缘。但是我在升级后创建的任何新表单都以 WinXP 样式显示其控件。如果我从旧表单复制控件并将其粘贴到新表单,则样式会更改。在运行时,所有窗体的所有控件都以 XP 样式显示。

知道是什么导致我的旧表格以旧样式显示吗?我查看了属性列表,但没有任何东西跳出来。但显然有一些东西,它是持久的,因为保存和重新加载不会改变它。有谁知道这个属性在哪里以及如何修复它?

0 投票
7 回答
14217 浏览

delphi - MD5 Hashing in Delphi 2009

In borland delphi 7 and even in delphi 2007 everything worked, but in delphi 2009 it just returns the wrong hash!

I use wcrypt2 script (http://pastebin.com/m2f015cfd)

Just have a look:

string : "123456"

hash:

Delphi 7 : "e10adc3949ba59abbe56e057f20f883e" - real hash.
Delphi 2007 : "e10adc3949ba59abbe56e057f20f883e" - real hash too.
And... Delphi 2009 : "5fa285e1bebe0a6623e33afc04a1fbd5" - WTF??

I've tried a lot of md5 scripts, but delphi 2009 does the same with all of them. Any help? Thanks.

0 投票
4 回答
949 浏览

delphi - 有没有人将 D2007 + TntControls 应用程序移植到 D2009 的经验?

我有一个用 Delphi 2007 编写的相当大的(免费软件)项目,它同时使用TntUnicodeControls了库和TntLXControls库,我计划迁移到 Delphi 2009。

不幸的是,我在我的项目中到处使用这些库:

  • 替换 VCL 控件以提供 Unicode 功能
  • Win32 API 包装器(主要用于比较字符串)
  • TntLXForms, TntLXRegistry, ...的功能增强
  • 使用TntControls. (VirtualTrees、SpTBXLib、D2009 更新可用)

您对将此类项目移植到 Delphi 2009 有任何经验和/或建议吗?是否建议先切换到(商业)TMSUnicode 控件?

0 投票
2 回答
1451 浏览

delphi - 有关 Turbo Delphi 2009 版本的任何信息?

单独地,Turbo Delphi 版本和 Delphi 2009 中添加的新改进是 Delphi 长期以来发生的两件最好的事情。但目前你只能得到其中之一。有谁知道 Embarcadero 是否有计划发布 Turbo Delphi 2009?

我是一个付费客户,拥有自己的 D2009 副本,但我正在尝试建立一个开源项目,该项目将大量使用泛型,如果该语言是可免费下载。

0 投票
3 回答
4408 浏览

delphi - 使用 Delphi 查找系统字体

查找用户可用的所有系统字体以便它们可以显示在下拉选择框中的最佳方法是什么?

我还想区分 Unicode 和非 Unicode 字体。

我正在使用完全启用 Unicode 的 Delphi 2009,并且想要一个 Delphi 解决方案。

0 投票
4 回答
3542 浏览

delphi - Delphi 2009 ShellTreeView/ShellListView 修复

当 Delphi 2009 项目在 IDE 索引中的 mainform 上使用 ShellTreeView/ShellListView 关闭时,会生成越界 (0) 异常。是否有针对 ShellTreeView/ShellListView 的修复程序,以便可以消除异常?

0 投票
8 回答
4981 浏览

delphi - JSON 解析器的要求

我正在考虑为 Delphi 实现 JSON 解析器。一个好的 JSON 解析器应该做什么?有关要求的任何想法?我相信它至少应该输出和处理 JSON……看看 XML 解析器,它应该更像 DOM 还是更像 SAX?

0 投票
4 回答
2541 浏览

delphi - 将 COM-DLL 从 Delphi 2007 移植到 Delphi 2009 后,如何诊断发生在 COM-DLL 中的内存损坏错误?

我刚刚将我们的几个自制 Outlook COM 插件从 Delphi 2007 移植到 Delphi 2009,现在遇到了一些非常奇怪的错误(在你问之前:这些错误似乎都与字符串处理没有任何明显的关系),例如当一个人试图第二次调用它们时挂起 Outlook 的模态对话框(第一次似乎一切都很好),但只有当它们从一个特定的事件处理程序调用而不是在其他地方做同样的事情时才会挂起。当我将错误跟踪到特定的代码行并注释掉该行或用不同的代码替换它以达到相同的效果时(例如,通过将否则将通过函数直接调用的代码复制到调用站点),将出现错误走开——通常只是在以后再次出现一些(同样不显眼的)陈述。

在 Delphi 调试器中运行它时,我可以看到冻结通常在GetMem.inc. 至少所有这些问题都是 100% 可重现的……

不用说我们在 Delphi 2007 中编译这些插件时没有这些问题。

现在,我很茫然。我知道我很幸运,但即使我认为自己是一个相当有经验的程序员(虽然主要是在小众领域),但我以前从未真正处理过这类错误。正如这个问题的标题所说,我什至不知道从哪里开始。我可以随心所欲地单步执行代码,但无休止的汇编语句对我来说毫无意义,而且我也不擅长有效地使用 CPU 视图。

此外,我什至不确定这是否是我自己的代码开始的问题(在这种情况下,我实际上倾向于怀疑它)。我们正在大量使用许多第三方库(例如 JCL、ADX、Redemption)。特别是 ADX 仍将其 Delphi 2009 支持标记为“测试版”。

我也尝试使用 FastMM 的 FullDebugMode 并且确实以这种方式在 ADX 中发现了一些错误(例如,在被释放后被修改的块)但是所有这些也发生在我使用 Delphi 2007 编译时,所以它似乎还不是必须的这些最终是观察到的回归的原因。

那么,我该如何处理呢?- 或者更好:我在哪里可以找到一些学习如何处理这个问题的好资源?例如,关于使用 CPU 视图的教程或有效解释和执行 FastMM 报告的教程?这些是正确的工具吗?我还应该去哪里看?

附录:
在这种情况下我应该怀疑哪些类型的代码?什么样的代码甚至有可能在内存中造成如此严重的破坏?我能想到的唯一地方是我的代码执行任何远程接近显式内存操作的地方是在准备 WinAPI 调用时保留一些缓冲区空间。还要记住,我的所有代码在 Delphi 2007 和 Delphi 2009 版本之间都是相同的,而 Delphi 2007 版本没有出现此类问题。

更新:
很有可能促使我发布这个问题的问题现在已经解决了。请参阅下面我自己的答案。

0 投票
6 回答
8719 浏览

oracle - Delphi 2009,带有 Oracle 的 DbExpress:无法加载 oci.dll

我已经设置了一个演示来测试datasnap 2009,我遇到了dbexpress的问题。

dbexpress 错误消息(在设计时或运行时相同):“无法加载 oci.dll 库(错误代码 127)。系统路径中可能缺少 OCI.dll 库。”

我正在使用 Oracle 8.0.5。oci.dll (c:\orant\BIN) 的路径位于我的系统路径中,位于该行的前面。我也安装了 Delphi 2005,完全相同的配置也可以正常工作。我已经移动了 dbexpress delphi 2005 相关文件,我已经重新启动了很多次,尝试将 oci.dll 复制到 c:\windows\system 或 c:\windows\system32\ 中,每次都出现同样的错误。

我的解决方案已经用完了。也许这是与我也安装了 D2005 的事实有关的问题......?

有人可以帮助我吗?

谢谢

编辑: 这是事件日志,在构建过程中的 IDE 中,我们可以看到它找到并加载 OCI.dll,因此错误(无法加载 oci.dll)可能不是一个好错误: