【问题标题】:Delphi DualListBox module - where to find?Delphi DualListBox 模块 - 在哪里可以找到?
【发布时间】:2017-11-09 08:05:22
【问题描述】:

我正在支持一些遗留的 Delphi 项目。该项目分为存储在 DLL 中的模块。 我需要编译其中一个模块(最后编译于 2007 年)。该模块使用模块 DualListBox 并具有 TDualListBox 类型的变量:

uses DualListBox ....;
...
lbMasterOrders: TDualListBox;
lbChildOrders: TDualListBox;

问题是,我不知道在哪里可以找到模块 DualListBox。我在我的机器上找不到它,我在互联网上也找不到它。 据我了解,TDualListBox 组件必须是类似于 ListBox 的东西,可以在运行时添加行。

一开始我以为 DualListBox 是 RxLib 的一部分,但 RxLib 的组件叫做 DualListDialog,完全是另外一回事。

所以也许这是上一个开发者自己编写的模块,不知何故被删除了。

但不知何故,已编译的 DLL(于 2007 年编译)运行良好。也许我可以通过反编译那个 DLL 来调查在哪里可以找到那个模块? 如果是这样,我应该在哪里查看反编译的项目?我正在使用 DeDe 进行反编译。

【问题讨论】:

  • 这个问题在这里是题外话。请访问help center
  • 我认为你的意思是双列表框对话框。它在 Delphi 早期版本的标准对话框中。 Dual Listbox
  • 如果你查看 D7 的 ObjRepos 文件夹,你会发现 DualList.Pas 单元,这可能是你所追求的(这可能是 @LURD 所指的)。也许你的上一个开发者使用了这个单元并重命名了它。

标签: delphi delphi-7 legacy legacy-code


【解决方案1】:

该单元称为duallist,由Delphi 2007(还有Delphi 10.1和10.2,不知道其他版本,但如果他们没有的话我会感到惊讶)在您打开VCL项目时自动生成并点击:

  1. 文件
  2. 其他
  3. 德尔福项目
  4. 德尔福文件
  5. 双列表框

这些单元通常取自对象存储库,默认情况下位于 Delphi 安装的 ObjRepos 子目录中。

【讨论】:

  • 存储库的 Dual List Box 自 Delphi 1 发布以来一直存在,它在柏林(没有检查东京,但我很确定它仍然存在好)。它实际上根本没有生成。它直接取自 ObjRepos 文件夹树(在柏林,它位于 {$BDSDIR}\ObjRepos\en\DelphiWin32 中,在文件 DualList.PAS、DualList.DFM 和 DualList.ICO 中)。它只是一个带有两个列表框和按钮(附有代码)的表单,允许在这两个列表框之间移动项目。您可能希望使用其中一些信息(或不更新)来更新您的答案。 :-)
  • @dummzeuch 不幸的是,这个双重列表框似乎不是我需要的。因为在我的项目中我看到这样的代码(lbMasterOrders 是 TDualListBox): lbMasterOrders.AddRow(addstr, FDataModule.AttachedOrders.FieldByName('order_id').asstring);在 DualList.PAS 中,我只看到类 DualListDialog,它没有方法 AddRow。我是否有机会从已编译的 DLL 中找到有关此 TDualListBox 的信息?我的意思是,DLL 必须包含这个类或者从其他地方调用它,对吧?
猜你喜欢
  • 2021-12-31
  • 2021-07-05
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
相关资源
最近更新 更多