| Related sites for http://delphisci.sourceforge.net |
| SWAT_2000 The Seventh Scandinavian Workshop on Algorithm Theory. Bergen, Norway; 5--7 July 2000. | | Equity_Technology_Group Provider of IT solutions, specializing in ERP systems integration. | | The_BASIC_Archives Very complete FAQ page with many links to other BASIC sites. | | Complete_Cleanup_Shareware Deletes browsing history, cookies, recent documents and recent files lists. From Softdd. | | Hotdownloads_org Site offering thousands of downloads, reviews, and news. Submissions by PAD file only. | | InternetSecuritySoftware_org Directory of Internet security software ranked by downloads with reviews. Developers may submit software. | | O\'Reilly_Hardening_Cisco_Routers Sample chapter from the book, showing the cisco-specific methods of configuring your routers to support using NTP time synchronization. | | Free_Email_Guide Guide to free web-based, redirection and pop3/imap email service providers available worldwide. | | C++_vs__Lisp Comparison uses problem from 'Lisp as an Alternative to Java'; result: C++ library to give some Lisp-like abilities; text, code samples, download, links. | | eWebPages_Web_Directory Searchable index of Internet resources, categorized for browsing. | | Check&Get Includes integrated browser and link checker. Shareware. | | ACEmessage_Network_Message_Utility Windows messaging application to sends messages directly to users desktops. Product overview, screenshots, FAQs, and downloads. | | Aimsoft_Productivity_Products Aimsoft Development Corporation features Windows timesaving software for the workplace including AIM Keys macro utility and AIM Tools Pro automation utility with event scheduler and AimBasic macro lan | | Healy,_Edward_-_Veren_Services Offers design, hosting and site promotion service. Located in New York, United States. | | Java2Curl Applet that reads Java Bytecode, and decompiles it into both Java Source code and almost correct Curl Source code. | | Text_Fading_with_Color_Selection Explains how to create a fading text script with a selectable fade color. An example is also available. | | Ruby/DICT RFC 2229 compliant client-side library implementation of DICT protocol, written in Ruby; can be used to write clients that access dictionary definitions from set of natural language dictionary databas | | BlueCharm_Web_Productions Offers design, Flash, maintenance, and consultation services. | | Iron_Daisy_Design Offering web design, site promotion and graphic design services for small businesses. Based in Round Rock in Texas, United States. | | Mbateam Provides web design, e-commerce, database integration, marketing, and advertising. |
|
Delphi Scintilla Interface Components - Scintilla made easy for Delphi/C++ Builder users
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.
The Delphi Scintilla Interface Components is a FREE collection of components that makes it easy to use the
Scintilla source code editing control from within Delphi, C++ Builder and BDS (Win32 Mode).
The components in this collection are, for now:
Visual:
TScintillaMemo, TScintilla and TSciDocumentTabControl
NonVisual:
TSciLanguageManager, TSciAutoComplete, TSciCallTips, TSciMacroRecorder,
TSciSearchReplace, TScintillaOptionsDlg,
TSciPropertyLoader, TSciAbbrevManager, TSciPrinter.
Database:
TScintillaMemoDB, TScintillaDB
TBX:
TSciSearchReplaceTBX
SpTBX:
TSciSearchReplaceSPTBX
If you are have a question, please check the Frequently Asked Questions (FAQ) first.
If you use C++ Builder and upgrading from 0.23 to 0.50 you might want to read Instructions on how to
upgrade from 0.23 to 0.50 in C++ Builder. Most of these instructions should fit Delphi users too.
This project also has a editor (MyEditor) which showcases some of the features of these componentsand Scintilla (the program itself is very basic, but does what it should).
Also please check the Scintilla Documentation before asking questions which is answered properly there,
this is after all only a
wrapper/interface
around it's functionality so that would be your ultimate guide to itunless it is more DelphiSci specific..
Notice
This is an interface for Delphi/C++ Builder
to the Scintilla API, and as such, in case of bugs,
there can betwo to blame:
First the components themself (these should be explored first), and second, the Scintilla
control.
The latter is most often to blame when
a document is incorrectly lexed (when using Scintilla's builtin lexers),
i.e such as
if
the coloring of a string is terminated before it should and similar things.
About the Scintilla Project
Scintilla is a free source code editing control. It comes with complete source code and a license that permits
use in any free project or commercial product.
As well as features found in standard text editing components, Scintilla includes features especially useful whenediting and debugging source code. These include support for syntax styling (highlighting), error indicators,code completion and call tips. The selection margin can contain markers like those used in debuggers toindicate breakpoints and the current line. Styling choices are more open than with many editors, allowingthe use of proportional fonts, bold and italics, multiple foreground and background colours and multiple fonts.
Component Pack
Example Editor
Synced with
Delphi Scintilla Interface Components 0.50
Released 06/07/2008. Read Notes
MyEditor 1.6
Released 19/07/2008.
Scintilla v1.76 CVS
Delphi Scintilla Interface Components 0.23
Released 28/09/2006.
MyEditor 1.5
Released 28/09/2006.
Scintilla v1.71 CVS
All Project Files
Component
Description
TScintillaThis is the main component, full syntax highlighting etc..Derives from the TScintillaMemo class.Many languages can be syntaxed with the same lexer, if the languagestructure is thesame, but the keywords/styles can be different. For example, C/C++ and Resources(.RC) files can use the same lexer.You can define your own languages based on the lexers in SciLexer.dll, with your ownstyles and keywords for each language.In the designer, right click on a Scintilla control placed on the form and rightclickSelect predefined languages to get a dialog that allows you to select what predefinedlanguages you'd like to use. Or you can add your own manually (you may need to knowwhat style-/keylistnumber is for what, but that info is available in the SciLexer.h/.iface file
from the Scintilla Project).
0.20+:You can also load a different .styles file to select from other
predefined languages.
You can create a .styles file by adding and defining the languages
the normal way, and then
save them from the IDE, or in MyEdit..
These are the languages I've defined as a startingpoint:C/C++, C#, Java, JavaScript, Resources (.RC), IDL/ODL, Delphi Pascal, Visual Basic,VBScript, Python,Ruby, CSS, Perl, HTML, XML, MYSQL/SQL, TCL/TK,Batch files, Ini/Properties files, Makefiles, Diffs, Apache Config, LUA,WML, ADA, Lisp, Scheme, MMixal, LaTeX, AutoIt 3, VHDL, ASN1 and more.
These definitions are available for selection in the designer only, i.e only the languages you
select/define becomes part of the executable. All styles are based on a black background, but it's easy to customize the styles.Add new languages yourself if you wish (based on the lexers in the SciLexer.dll) easy,all work can be done within the Delphi/C++ Builder at designtime, or you can addthem at runtime if you wish.All languagestyles/keywords etc can also be modified at runtime if you want to.
Some has requested a Filter property in SciLanguageManager to define what language
has what extension.. This isn't added yet, but TExtensionMapper (not a component)
has a similar function. It can accept multiple extensions for each language by adding
something like this to your code:
ExtMapper.Add(".c;.cpp;.cxx;.hpp;.h","C++/C");
This assigns those extensions to the C++/C language.
Then use this to detect/assign the proper language when you need it:
Scintilla1.LanguageManager.SelectedLanguage:=ExtMapper.DetectLanguage(".cpp");
or for v0.50:
Scintilla1.SelectedLanguage:=ExtMapper.DetectLanguage(".cpp");
TScintillaMemo
Derives from the TScintillaBase class (may be used to derive additional components).
This is the basic component, it exposes all scintillamessages as functions.
Exposes many as properties. In addition to that it adds additional selection/retrieval
functions etc.
This is a "basic" memo component, without syntax highlightning.
0.20+:
Save*/Load* functions creates the class specified in the property StreamClass,
and then calls it's loading/saving functions. This is to allow more flexibility in the saving/loading
of data if you have created a class which can load/save in a specific format, UCF-16
for example..
TSciLanguageManager
New in v0.50
This is the separated LanguageManager for TScintilla components, its purpose is to hold
"languages",
styledefinitions/keywordlists etc.
TSciAutoComplete
Autocompletion from the current document, or from a list. Just drop this componenton the form, and set the Editor property to the editor you want it to link to.
All/most autocompletion related properties are exposed.
TSciCallTips
Makes the use of calltips extremely easy.. Add the functionlist/whatever to the property ApiStrings and set the Editor property to the editor you want to link to. That's all that's needed. All calltip related properties are exposed.
TSciMacroRecorder
Record your macros easy. Set the Editor property to the editor you want to link to. Save/Load macros, execute it or whatever.Very basic.
TScintillaOptionsDlgExtensive options dialog for the TScintilla derived components, define/changeyour languages, styles, keywords or whatever at runtime.This is also available at designtime when you rightclick a TScintilla derived componentand select Options.
TSciSearchReplaceSearch and Replace dialogs for TScintilla derived components. (parts are MPL 1.1 licensed)
TSciDocumentTabControlAdd this and one of the TScintillaMemo derived components on the form, set the Editorproperty of the control, and viola, Tabbed TScintilla editor.
TSciPropertyLoaderReads/writes predefined and custom properties to/from a stream or file.
Starting with version 0.17 the format of the data produced more resembles INI files, but
with the difference that a line can span more than one line with the use of the '\' on
the end of the line.
0.20+:
You can select which data to save/load, and saving
and loading of styles can be done with
separate functions.. (i.e the properties file can be
very small, and then just load the styles from
anywhere with LoadStylesFromStream.
TSciAbbrevManager
Manages abbrevations/templates a user can expand to whatever you want..
Starting with version 0.17 this supports TemplateMacros and inclusion of other templates
inside
another which in it's turn can include other templates.
i.e define the words like
this:
bracesinternal={\n\t|\n}
main=void main(int argc, char** argv)<^bracesinternal>
This will, when ExpandAbbrev is called, expand the word main to the template function
main, the main function in turn will expand the bracesinternal reference to:
{
}
so that the result will be:
void main(int argc, char** argv){
}
in the connected TScintillaMemo derived editor..
The predefined templatemacros is ^Prompt and ^Row for now, but a OnTemplateMacro
event is exposed to allow you to define more builtin templates, which in turn can be used
in the abbrevations/templates
..
TScintillaMemoDB
Database version of TScintillaMemo.TScintillaDB
Database version of TScintilla.
TSciPrinter
Easily print from the TScintillaBase derived control. Not very much tested yet, but
seems to work.
TSciSearchReplaceTBX
ONLY Delphi
TBX version of TSciSearchReplace.
This component requires correctly installed Toolbar 2000, TBX 2.1beta, and mbTBXLib and is in a package of its own.. i.e the requirements above is ONLY
for this one component, and not the others.
TSciSearchReplaceSPTBX
New in v0.23
ONLY Delphi SPTBX version of TSciSearchReplace.
This component requires correctly installed Toolbar 2000, TBX 2.1beta, TNTUnicode, SpTBXLib, and is in a package of its own.. i.e the requirements above is ONLY
for this one component, and not the others.
And much more to come..
Parts of TScintillaBase are derived from the DelphiWrapper v1.4 (made by Simon Steele and Kiriakos Vlahos).Parts are translated to Delphi by myself from the sources of the SciTE editor demo (by Neil Hodgson).
The TScintillaOptionsDlg component uses the TscFontComboBox by Stefan Cruysberghs, and theConfirmReplaceDlg and ReplaceTextDlg dialogs are derived from the corresponding files in theSearchReplaceDemo from the SynEdit project.
The rest is Copyright © 2004-2008, Jan Martin Pettersen.
These components are released under the GNU Library or Lesser General Public License 2.1 license (LGPL).
To download these free components, documentation, or to read more,
go to the Delphi Scintilla Interface Components Project Page.
Links
Scintilla ProjectDelphiWrapper v1.4
TscFontComboBoxSynEdit Project
|
|