delphi_for_.net_preview_compiler_ide_integration_into_delphi_7
readme
Delphi for .NET command-line compiler IDE integration
Version 0.13 (2002-10-03)
-----------------------------------------------------
Integrate the dccil.exe command-line compiler found in the
Delphi for .NET Preview into the Delphi 7.0 IDE.
NOTE: Please read thisdo
cument completely before
installing this package.
INSTALLATION
------------
* Component | Install Packages...
* Click the "Add..." button in the upcoming dialog
* Choose to open the "DccilIdeIntegrationPackage.bpl"
found in this Zip archive
// A new entry
//
// "Delphi for .NET command-line compiler IDE integration"
//
// appears in the list of design-time packages.
* OK
By now, a new top-level menu item "Delphi for .NET" has been
added at the very right end of the Delphi 7.0 menu bar.
Of note are the following two menu items:
* Hijack IDE
With this menu item checked, all build or run actions
of the underlying Delphi 7.0 IDE are redirected to
matching actions offered by the Delphi for .NET
command-line compiler IDE integration package.
This means, for instance, that the menu item
Project | Compile
and its associated (default) shortcut
Ctrl + F9
will use the dccil.exe command-line compiler to
make the current project. Actions that cannot be
redirected are turned off and disabled.
Use this menu item to "morph" the Delphi 7.0 IDE
into a "Delphi for .NET" IDE.
* .NET Framework SDK help
This menu item (and its menu shortcut) is sensitive
to the text under the caret in the current editor.
It could be said to offer "context-sensitive help"
if it was not for the known issuedo
cumented below.
Note that any output from console applications (dccil.exe
and peverify.exe) will be directed to the IDE's message
view window.
DEINSTALLATION
--------------
* Component | Install Packages...
* Select the package
"Delphi for .NET command-line compiler IDE integration"
and press the "Remove" button.
* OK.
* Remove the key
HKEY_CURRENT_USER/Software/Borland/Delphi/7.0/DccilIdeIntegration
in the registry to remove option settings that has been
persistent across IDE sessions.
ASSUMPTIONS
-----------
* dccil.exe is located on the PATH.
The Delphi for Microsoft .NET Preview installer will
automatically perform this;
if this fails at install
time, the PATH environment variable will have to be
adjusted manually later.
* cordbg.exe, ildasm.exe and peverify.exe (all part of the
Microsoft .NET Framework SDK) are located on the PATH.
If these files are not on the PATH, modify the PATH
environment variable so that they are.
* The DbgClr GUI debugger needs to be installed and
configured correctly.
The integration tool locates the DbgClr GUI debugger
executable, DbgCLR.exe, via the registry entry
---- SNIP ---- SNIP ---- SNIP ---- SNIP ---- SNIP ----
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/DbgClr/7.0]
"InstallDir"="C://Program Files//Microsoft.NET//FrameworkSDK//GuiDebug//"
---- SNIP ---- SNIP ---- SNIP ---- SNIP ---- SNIP ----
* Saving projects files is "possible".
Before the dccil command-line compiler is invoked,
all files belonging to the active project that
have been modified must be saved to disk. This will
fail whenever some read-only files are around.
Note: Files need to be referenced via
uses
xyz in "xyz.pas";
in the project's uses clause. If this is not
the case, you need to save the module in question
manually. Alternatively switch from the default
saving style to save all modified editor buffers;
use the menu item
Delphi for .NET
Options
Save all modified editor buffers on compile/build
to make the integration save all modified editor
buffers before it invokes a compile or build
cycle.
Since project files must be saved to disk so that the
command-line compiler can work on them, you really
want to have the "Undo after save" editor
configuration option enabled:
Tools
Editor Options -> General
Undo after save
KNOWN ISSUES
------------
* Code Completion, Code Insight (Code Parameters), and
Tooltip Symbol Insightdo
not work.
These features require a compiler tightly integrated into
the IDE and therefore these features cannot be provided
by the command-line compiler.
* The Delphi 7.0 "View | Additional Message Info" functionality
("Message Hints" window)do
es not work with the compiler
messages as printed with the integration tool.
* The "&Delphi for .NET" top-level menu item pick letter ("D")
conflicts with the "&Database" top-level menu item that
is installed by the "Borland BDE DB components" package.
One option to resolve this conflict is to remove (uncheck)
the "Borland BDE DB components" package, so that the
"&Database" top-level menu item disappears.
In case removing or disabling the database package (and all
its dependent packages) is not acceptable, add the following
information to the registry:
---- SNIP ---- SNIP ---- SNIP ---- SNIP ---- SNIP ----
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER/Software/Borland/Delphi/7.0/DccilIdeIntegration]
"TopLevelMenuCaption"="Your &Caption goes here"
---- SNIP ---- SNIP ---- SNIP ---- SNIP ---- SNIP ----
Given the above example, the new top-level menu item will
be "Your &Caption goes here" instead of "&Delphi for .NET".
The ampersand character ("&") denotes the pick letter
(if any) that you wish to assign to the top-level menu
item.
* Command-line parameters and working directory settings
made in the Run | Parameters dialog are not passed on
to (or rather: not accepted by) the (external)
DbgCLR.exe debugger.
Set the command-line parameters and working directory
in the DbgCLR.exe debugger application itself or use
the cordbg.exe debugger.
* While the main project source parser will detect "program",
"library", and "package" projects, it cannot read the
$E or $EXTENSION directive that ultimately determines the
file extension of the generated binary.
The assumption therefore is that the $E directive is not
used and that only .exe, .dll, and .bpl file extensions
are generated for binaries.
The same limitation applies to the $LIBPREFIX, $LIBSUFFIX,
and $LIBVERSION directives for libraries or shared
objects.
* Choosing the ".NET Framework SDK help" menu item (or pressing
Alt+F1) over an identifier will perform a best effort (and
certainly improvable) attempt to determine the underlying
source code identifier and pass this on to the .NET Framework
SDK help system.
Due to the way the .NET Framework SDK help system is
structured and because the command-line compiler integration
do
es not allow for contextual identifier querying, a direct
help page will never be opened;
instead, a "best guess"
help index entry is chosen which then
can be "completed"
into showing a help page.
* The ".NET Framework SDK help" menu item (or pressing Alt+F1)
may not have the desired effect when a localized (non-English)
version of the .NET Framework SDK is installed.
* Sometimes .PAS files are "not found" although they exist
In case an error message
[dccil Fatal Error] File not found: 'SourceFile.pas'
is emitted and SourceFile.pas is present, chances are that
SourceFile.pas is currently locked (against sharing) by
another process. The compiler will emit the misleading
error message above in this case.
Try closing all open editor buffers (files) and starting
compilation again. The IDE sometimes keeps files locked
on disk whenever the Delphi 7.0 IDE compiler failed
fatally on some code it was unable to parse or compile.