问题标签 [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 投票
3 回答
1143 浏览

delphi - TTreeView 的父级更改后释放的 TTreeView 节点句柄?

我有一个非常有趣的问题。

背景

我已经使用 TTreeView 多年,但现在才将它与对接库(来自 AutomatedQA)一起使用。我了解到,当更改 TTreeView 的父级时,会重新创建所有句柄。这是对接库在正常活动期间所做的事情。

我一直在使用 TTreeNode 上的 Data 属性来保存一个对象。我还保留了到对象中 TreeNode 的链接。简而言之,使用 TreeNode,我可以获取对象,也可以从对象中获取 TreeNode。

只要树视图的父级从未更改(自动隐藏和显示窗口),我的应用程序就可以完美运行。

问题

我发现一旦父级发生更改,我附加到树节点的 Data 属性的对象现在包含对错误树节点或过时指针的引用。

我尝试了另一种方式“MyTreeViewContainer.Parent:=SomewhereElse”并观察到同样的问题。

用可能数百个对象重新加载树不会很有效。

我不知道我应该如何解决这个问题。长期以来,我一直能够加载树视图并让对象仍然能够轻松找到彼此。这真的可以打破我使用树视图的好“模式”......

感谢您的帮助!

0 投票
5 回答
4287 浏览

delphi - 为什么有些数组可以发布而其他数组不能发布?

这里发生了什么?静态数组给出错误,“发布的属性'staticArray'不能是数组类型”但动态数组就可以了吗?我很困惑。任何人都知道这背后的原因,以及我该如何解决它?(不,我不想将我所有的静态数组重新声明为动态数组。它们的大小是有原因的。)

0 投票
1 回答
1462 浏览

delphi - D2009 更快的 CompareText 实现

我在我的程序中广泛使用哈希映射数据结构。我正在使用 Barry Kelly 在 Codegear 论坛上发布的哈希映射实现。该实现在内部使用 RTL 的 CompareText 函数。分析让我意识到在 SysUtils CompareText 函数上花费了很多时间。

我看了看

快码网站

并找到了一些更快的 CompareText 实现。不幸的是,它们似乎不适用于 D2009 及其 unicode 字符串。

现在的问题是:是否有类似的更快的版本支持 D2009 字符串?在使用哈希映射时,CompareText 函数似乎被调用了很多(至少在我当前使用的实现中),所以很少的性能改进真的会产生影响。或者那里提供的实现也适用于 unicode 字符串?

0 投票
2 回答
1645 浏览

delphi - Delphi 2009 和复制内存

我在 Delphi 2009 上测试DelphiModbus 库并没有得到我想要的结果。我认为问题在于 IdModbusClient.pas 上的以下行:

看起来 ReceiveBuffer 被设置为一些垃圾。

缓冲区定义为 TIdBytes(来自 Indy 组件)

ReceiveBuffer 定义为 TCommsBuffer:

iSize 当然是以字节为单位的缓冲区大小。

我想知道这是否与unicode转换有关?

0 投票
3 回答
1642 浏览

delphi - 在 Delphi 2009 下将字符串保存到磁盘

我有一个像下面这样的结构,需要从磁盘保存和加载。

到目前为止,我已经使用这样的东西来保存结构:

上面的代码在 Delphi 7 下工作。在 D2009 下,当我在短字符串和 Unicode 字符串之间进行分配时,我收到了很多警告消息。到目前为止,我设法在没有任何编译器警告或提示的情况下编写 Delphi 代码,我希望保持这种状态。所以我需要一个优雅的方法是将字符串(Unicode 很好但不是关键)保存到磁盘而不收到警告。

0 投票
2 回答
2064 浏览

delphi - 通过 http 代理连接 TTcpClient

我如何通过delphi中的http代理服务器连接到服务器?SOCKS5 代理呢?

谷歌没有任何建议!

0 投票
7 回答
29372 浏览

delphi - 在 Delphi 2009 中显示 PDF 文件的最佳方式是什么

我应该使用什么组件在 Delphi 2009 应用程序中显示 PDF 文件?

编辑:

我一直在使用 Synactis 的PDF 查看器- 一个非常不错的免费 PDF 查看器,但它不支持 Delphi 2009。

所以我需要从产品中设计出来

0 投票
2 回答
1542 浏览

delphi - 在 D2009 中无法安装在 D7 下工作的组件

我有很多在 D7 下完美运行的组件。我设法通过将它们拖入 Delphi 2009 IDE 来编译和安装它们。但是,当我尝试在项目中使用这些组件时,编译器说它找不到它们的源代码。我可以在哪里输入该库的路径?


解决方案:

我在 Delphi 2009 中拖放了旧的 DPK 文件。然后在项目管理器中选择“构建”,然后选择“安装”。除了使用控件的应用程序看不到它的源之外,一切都运行得很顺利。通过将路径添加到工具-选项-库 Win32 中解决了问题。

感谢所有人,尤其是穆罕默德。

0 投票
2 回答
1428 浏览

delphi - 功能区控制错误?(导致vista中断)

我发现当我采用仅包含功能区和状态栏的简单表单时,它会被截断。您在状态栏上方看到的控件后来被删除。无论碰巧存在什么控制,都会发生相同的截止。后来我删除了状态栏并在那里放置了一个备忘录控件,结果相同。

没有丝带栏:( 来源:xrw.bc.ca不带色带条

带丝带栏:( 来源:xrw.bc.ca带条形条

我已经用边缘的一些 2、4 和 8 像素来说明这一点。

未最大化
(来源:xrw.bc.ca(来源:xrw.bc.ca
最大化

正如 Chris Lively 在下面所说,显然是对尺寸的错误计算。我该如何纠正这个?

谢谢您的意见!

0 投票
3 回答
786 浏览

delphi - TDictionary - 无效键

我有这样的代码:

随机我看到 'v := myDict.Items[k];' 上抛出异常 其中说 k 无效。

还有人看到这个吗?