fcl

FCL - Free Component Library

Introduction

The Free Component Library is meant to be an free equivalent of Delphi's VCL - only all components in this library are non-visual. Visual components are the domain of other projects such as Lazarus or MSEide+MSEgui.

The idea of FCL is to give a complete set of classes, so a programmer is able to tackle most common programming tasks; wherever possible we try to keep Delphi compatibility, so code written for one compiler can be compiled by the other.

Helping out

The FCL is maintained by the Free Pascal team, and is distributed along with the compiler. Everyone is free to donate components, or to implement improvements in the existing components. Though the components should be more or less Delphi compatible, this should not be seen as a restriction. If you think you have some component that can be useful, or would like to implement some component, please contact Michael Van Canneyt.

Current status

The FCL is under continuous development, as many components are being added. As we go along, we try to keep the following class chart up to date. At the moment the Free Component Library contains the following units (in alphabetical order):
base64
Implements base64 encoding/decoding streams.
classes
Implements the Delphi Classes unit, with several utility classes such as streams, stringlists, TPersistent, TWriter and so on.
db
Contains a TDataset implementation, together with TDatabase aware descendents.
ddg_ds
Contains a TDataset descendent that works on a flat file (file of record).
dom
Contains a Free Pascal implementation of a Document Object Model (DOM) set of classes, as specified by the W3 Consortium.
ezcgi
Implements easy CGI scripting. A single class methods needs to be overridden in order to generate a complete CGI script.
gettext
A unit to implement resource strings by means of the GNU gettext tools.
htmldoc
Contains a Free Pascal implementation of a Document Object Model (DOM) set of classes for HTML, as specified by the W3 consortium.
httpapp
A http application class. Incomplete and not maintained at the moment.
idea
Contains the implementation of an IDEA encrypting/decrypting stream.
inifiles
Contains an implementation of a TInifile class.
iostream
Contains an implementation of a stream that can be used to access standard input, standard output and standard error.
mysqldb
Contains a TDataset descendent that can be used to access a MySQL database.
pipes
Contains streams that access each other through a pipe. What is written to stream 1, can be read from stream 2.
rtfpars
Contains a RTF (Rich Text Format) parsing class. All that needs to be done is set some event handlers and you can display RTF wherever you want.
sh_pas
A syntax highlighting object for Pascal syntax.
sh_xml
A syntax highlighting object for XML documents.
shedit
A text editor core with syntax highlighting capabilities.
xmlcfg
A configuration unit that stores a configuration as a XML document.
xmlread
A unit to read an XML document and generate a DOM structure from it.
xmlwrite
A unit to take an XML document object and generate an XML file from it.
zstream
A unit that contains compression streams and streams to read .gz gzipped files.