Delphi Scintilla Interface Components These components makes the use of the Scintilla Syntax Highlighting control easier
with Delphi and C++ Builder (tested with D7, D05, D06, D07,C++ Builder 6, 2006 and 2007)

Define your own languages based on the lexers found in the SciLexer.Dll (Scintilla Project)
version 1.76 and above with the styles and keywords needed.


Support This Project

Upgrading from 0.23 to 0.50 is easy in Borland C++ Builder. However, it can get complicated and you may totally mess things up so I recommend you back up your project. The best way to do this is by copying the entire folder.

These instructions are general for all C++ Builder versions and are aimed at a user that is familiar with the IDE so I assume you know your way around the IDE.

Upgrading from DelphiSci 0.23 to 0.50

Step 1: Launch the IDE without opening any project.

Step 2: From "Install packages" deselect the old Delphi Sci 0.23 references and for each reference, select the Remove button. This will make sure the components are completely removed (I think).

Step 3: Follow the instructions in the included file to install Delphi Sci 0.50. Everything should go without a glitch. You should not get any errors at all. Well I didn't :) Simply select Projects->Build All Projects. The files are as follow:

For C++ Builder 6: "DelphiSci-0.50-src\C6 Packages\DelphiSciC6.bpg"
For BDS 2006: "DelphiSci-0.50-src\D10 Packages\DelphiSciD10.bdsgroup"
For RAD 2007: "DelphiSci-0.50-src\D11 Packages\DelphiSciD11.groupproj"

If the installation goes well, you will be greeted with a nice friendly message notifying you that the new components have been added. The installation should have created header files in the "Source" dir. You must tell BCB where these header files are. If you can't see these files, something has gone wrong. Simply open up DelphiSci-0.50\Source and search for ".hpp" files. If you find one file chances are you will have all of them.

Upgrading your existing project that is using DelphiSci 0.23 to version 0.50

Ok, this is the part where you can mess things up so you must be very careful what you are doing. This is my way, this is how I did it and it worked without a problem. Although, I could have simply deleted the original DelphiSci-0.23 folder, I picked the way outlined below.

Step 1: Back up your project
Step 2: Open your project's file in Notepad and remove all references to DelphiSci-0.23. Here is an example:

<INCLUDEPATH value="..\Projects;&quot;C:\Program Files\Borland\CBuilder6\TNTUniCtrlsWithExceptions\Source&quot;;&quot;C:\Program Files\Borland\CBuilder6\delphisci-0.23\delphisci-0.23\Source&quot;"/>

Pay attention on the last reference. In this example, you would remove the "C:\Program Files\Borland\CBuilder6\delphisci-0.23\delphisci-0.23\Source".

Depending of how your include paths are set up, you might also have $(BCB)\delphisci-0.23\delphisci-0.23\Source.
Either way, you need to remove all of these references. The reason for this is because if you don't you will get ambiguity problems when you include the path of the new DelphiSci 0.50 to your project's include paths.

Please note, the old Delphi 0.23 references might be everywhere in your project so make sure you search your project well and when you delete stuff, delete with caution. Make sure you do not delete an extra " or ; etc.
My advice is to have a look at how the whole line is crafted first and then delete the appropriate reference. (Perhaps simply deleting the 0.23 folder might have been a better way to go but it is good to know how things work behind the scenes so I picked this way).
If you learn to edit your project's file this way, it pays off! You will have complete control of what's being loaded and required when you open your project and whenever you have a problem with an old lib, for instance you know you don't need it but BCB keeps asking you to locate it, you can simply open up your project in Notepad and remove the references.

Ok, that's the first and most error prone part. Once you are done with it, save your file.

Step 3: Open your project file with the IDE.

Step 4: Go to Project Options->Paths and to your #include paths, add the path of DelphiSci-0.50 "Source" dir to your project. The installation should have created header files in this "Source" dir. You must tell BCB where these header files are.

Before you do any of the following, make sure you have the source path of the new DelphiSci-0.50 included in your project's path!

Step 5: The new DelphiSci 0.50 has removed quite a few header files. So in your project's header files, for instance "Form1.hpp" you will find references such as:

#include "SciLexer.hpp"
#include "SciLexerMemo.hpp"
#include "SciLexerOptionsDlg.hpp"

Delete these. These files now do not exist with this version and including them will generate "Unable to open include file" errors. Once you have done this, go to your CPP files, example Form1.cpp and delete:

#pragma link "SciLexer"
#pragma link "SciLexerMemo"
#pragma link "SciLexerOptionsDlg"

...

If you don't, you will get "Unable to open object file" errors which would make sense. You are telling the compiler to link non-existing references.

That's about it. I am not sure whether there were more of these references that need deletion but if there are, *trust me* you will know when you try to compile your project :)
An example like this could be "Unable to Open SciSomeHeaderFile" - a file not mentioned here. Once you get this, you will know that the #include reference in question requires deletion as well as the related "#pragma link" reference in the CPP file. Again, before you start deleting references, make sure you have the source path of the new DelphiSci-0.50 included in your path OTHERWISE you will get the same errors even for the valid files, the ones that exist and are needed! That's about it.

Please note, the new LanguageManager was moved out of TScintilla. So initially you might get some error messages about non-existing references.
Simply select the "Yes" option to remove them. You will have to re-add them again because these options still exist, they just have been moved. In a form you'll dump a TScintilla component and a TSciLanguageManager. Attach the LanguageManager to the editor, (->Editor property of the TScintilla) and the rest should be more or less as usual. If you are creating controls dynamically, you would do the same thing dynamically.

You might also get a message notifying you that a reference to "DivOptions" does not exit and whether you want it removed. To this, you say "Yes". This has been moved to "OtherOptions".

Well, I hope that helps and good luck.

------
A big thank you to the developer of SkyIDE for writing these upgrade instructions.

Back to main page