Is there a way to list what units/classes are in a Delphi compiled package?
Besides asking the developer or reading the documentation, the answer is No.
Have you had a look at the TDUMP utility that is shipped with Delphi 7? A bpl is just a fancy DLL so you can list its exported functions:
e.g.
"C:\Program Files\Borland\Delphi7\Bin\TDUMP.EXE" AFWRTL_RD7.bpl
Turbo Dump Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation
Display of File AFWRTL_RD7.BPL
. . .
Exports from AFWRTL_RD7.bpl
91 exported name(s), 91 export addresse(s). Ordinal base is 1.
...
000046B4 31 000A __fastcall Fgint::Base2StringToFGInt(System::AnsiString, Fgint::TFGInt&)
...
If you look at the exported functions, the name of the function seems to be prefixed with the unit or dependent package name, e.g. Fgint::Base2StringToFGInt is function Base2StringToFGInt in unit Fgint.pas.
Alternatively, have a look at the depends.exe utility that ships with the Windows Resource Kit. This provides a GUI to view the contents of a DLL (or BPL).
See
for more details.
Vince
You could create a new package, add your .dcp to its requires clause, add a new unit to it and use code completion in the uses clause - it will show you all available units in all required packages. If your .dcp is the only required package and you set it to display sorted by scope (right-click in the dropdown) then the units from your .dcp should be on top.
I'm not sure if this works in Delphi 7 already. It works in Delphi 2007.