0

I am supporting some legacy Delphi project. This project is divided into modules that stored in DLLs. I need to compile one of the modules (last compiled in 2007). This module uses module DualListBox and has a variable of type TDualListBox:

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

The problem is, I don't know where to find module DualListBox. I can't find it on my machine, and I can't find it on the internet. As far as I understand, the TDualListBox component must be something like ListBox that can Add rows at runtime.

At first, i thought that DualListBox is a part of RxLib, but RxLib's component is called DualListDialog and it's something completely else.

So maybe this is the self-written module by prev developer, that was deleted somehow.

But somehow the compiled DLL (that was comiled in 2007) is working perfectly fine. Maybe I can investigate where to find that module by decompiling that DLL? If so, where should I look in the decompiled project? I'm using DeDe for decompiling.

Ilya Skaba
  • 55
  • 1
  • 9
  • 3
    This question is off topic here. Please visit the [help]. – David Heffernan Nov 09 '17 at 08:18
  • I think you mean the dual listbox dialog. It was there among the standard dialog forms in the early versions of Delphi. [Dual Listbox](https://books.google.se/books?id=zg7lBwAAQBAJ&pg=PA79&lpg=PA79&dq=DELPHI+DUALLISTBOX&source=bl&ots=xFzJozRSn7&sig=6AMWZrDmFHuCHSN_vLdcZJ6naT4&hl=sv&sa=X&ved=0ahUKEwjC2tWEirHXAhVSyaQKHZXsDDkQ6AEITDAF#v=onepage&q=DUAL&f=false) – LU RD Nov 09 '17 at 08:46
  • If you look in D7's ObjRepos folder, you will find the unit DualList.Pas, which may be what you are after (this may be what @LURD is referring to). Maybe your prev dev used this unit and renamed it. – MartynA Nov 09 '17 at 10:09

1 Answers1

5

The unit is called duallist and is automatically generated by Delphi 2007 (and also Delphi 10.1 and 10.2, don't know about other versions, but I would be surprised if they didn't have it) when you open a VCL project and click:

  1. File
  2. New
  3. Other
  4. Delphi Projects
  5. Delphi Files
  6. Dual list box

These units are usually taken from the object repository, which by default is located in the ObjRepos subdirectory of the Delphi installation.

dummzeuch
  • 10,975
  • 4
  • 51
  • 158
  • The repository's *Dual List Box* has been around since Delphi 1 was released, and it's in Berlin (didn't check Tokyo, but I'm pretty sure it's still there as well). It's actually not generated at all; it's taken directly from the ObjRepos folder tree directly (in Berlin, it's in {$BDSDIR}\ObjRepos\en\DelphiWin32, in the files DualList.PAS, DualList.DFM, and DualList.ICO). It's simply a form with two list boxes and buttons (with code attached) that allow moving items between those two listboxes. You may want to update your answer with some of this info (or not). :-) – Ken White Nov 09 '17 at 23:20
  • @dummzeuch unfortunately this Dual list box seems to be not the one I need. Because in my project I see code like this (lbMasterOrders is TDualListBox): lbMasterOrders.AddRow(addstr, FDataModule.AttachedOrders.FieldByName('order_id').asstring); and in DualList.PAS I see only class DualListDialog, which doesn't have method AddRow. Do I have any chance to find info about this TDualListBox from compiled DLL? I mean, DLL must contain this class or call it from somewhere else, right? – Ilya Skaba Nov 10 '17 at 10:27