Visual Component Library
Encyclopedia
VCL is a visual component-based object-oriented framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...

 for developing Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 applications. It was developed by Borland
Borland
Borland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...

 for use in, and tightly integrated with, its Delphi and C++Builder RAD
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 tools (now owned by CodeGear
CodeGear
CodeGear is a wholly owned division of Embarcadero Technologies. CodeGear develops software development tools such as the Delphi IDE, the programming language Delphi, and the database server InterBase. Originally a division of Borland Software Corporation, it was launched on 14 November 2006...

, division
Division (business)
A division of a business entity is a portion of that business that operates under a different name. It is the equivalent of a corporation or limited liability company obtaining a fictitious name or "doing business as" certificate and operating a business under that fictitious name...

 of Embarcadero Technologies
Embarcadero Technologies
Embarcadero Technologies is an American computer software company that develops, manufactures, licenses, and supports a wide range of products and services related to software through its various dynamic product divisions...

). It is written in Object Pascal
Object Pascal
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...

.

A cross-platform equivalent of the VCL, called CLX
Component Library for Cross Platform
Component Library for Cross Platform , is a cross-platform visual component-based framework for developing Microsoft Windows and Linux applications. It is developed by Borland for use in its Kylix, Delphi, and C++ Builder software development environment....

 (Component Library for Cross Platform), was later developed for use in Delphi, C++Builder and Kylix
Kylix programming tool
Kylix was a compiler and integrated development environment formerly sold by Borland but later discontinued. It is a Linux version of the Borland Delphi software development environment and C++ Builder, which runs under Microsoft Windows. Continuing Delphi's classical Greek theme, Kylix is the name...

. It was however abandoned in favor of the VCL.

VCL forms a class hierarchy with a common ancestor
Inheritance (computer science)
In object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...

, the TComponent class (which inherits
Inheritance (computer science)
In object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...

 from TObject, the root class in Delphi Object Pascal
Object Pascal
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...

). This is a common approach shared by the Java programming language, Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...

, C# and many other object-oriented programming languages.

VCL components cover Windows controls like windows (TForm class), controls (e.g., TButton, TCheckBox, TLabel classes) as well as database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

 access (e.g., ADO or IBX components) or Internet connections (Indy
Internet Direct (Indy)
Internet Direct, also known as "Indy", is a free software / open source socket library written in Object Pascal, an object-oriented version of Pascal. It includes clients, servers, TCP, UDP, and raw sockets, as well as over 100 higher level protocols implementations such as SMTP, POP3, NNTP, and...

 components). The component approach allows programmers to extend the VCL with many visual and non-visual additional components. There is a large number of free and commercial component packages. Among them are JEDI, TMS, Developer Express, Mitov Software, Raize Software, TurboPower, IOComp, SDL, DA-SOFT Technologies and many others.

While not all VCL components are thread-safe
Thread-safe
Thread safety is a computer programming concept applicable in the context of multi-threaded programs. A piece of code is thread-safe if it only manipulates shared data structures in a thread-safe manner, which enables safe execution by multiple threads at the same time...

, VCL supports multi-threading
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

 too. One example is the built in multi-threading support of the OpenWire
OpenWire (library)
The OpenWire is an open source Dataflow programming VCL and FireMonkey library that extends the functionality of Delphi, C++ Builder and Lazarus by providing pin type component properties. The properties can be connected to each other...

 VCL library.

VCL provides native support for PME (Properties, Methods and Events) model at .NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

 level.

.NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

 is modeled after VCL, since one of the main architects of the first Delphi versions, Anders Heijlsberg, went to Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 and was one of the main architects of NET there.

Applications built using VCL

  • Beyond Compare
    Beyond Compare
    Beyond Compare is a file comparison utility. Aside from comparison of files, the program is capable of doing side-by-side comparison of directories, FTP directories, and archives. In an April 2009 review, Beyond Compare was awarded four out of five stars by CNET...

     - file comparison utility.


OpenOffice.org contains an unrelated graphic library, which is also called VCL.

See also

  • Delphi
  • Object Pascal
    Object Pascal
    Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...

  • CLX
    Component Library for Cross Platform
    Component Library for Cross Platform , is a cross-platform visual component-based framework for developing Microsoft Windows and Linux applications. It is developed by Borland for use in its Kylix, Delphi, and C++ Builder software development environment....

  • Object Windows Library
    Object Windows Library
    The Object Windows Library is a Borland C++ object-oriented framework originally designed for WinAPI. It was used in Turbo Pascal for Windows, Borland Pascal and their Borland C++ package. It was a competitor to the Microsoft Foundation Class Library .OWL had incomplete support by the Borland C++...

  • Turbo Vision
    Turbo Vision
    Turbo Vision is a DOS-based character-mode text user interface framework developed around 1992 by Borland for Pascal, and C++. Later it was deprecated in favor of Object Windows Library for the then-increasingly important Win16 API....

  • Software component
  • C++Builder
  • Delphi for PHP
    Delphi for PHP
    RadPHP is an IDE and rapid application development framework for the PHP programming language developed by Embarcadero Technologies.The VCL includes many components that can be used dynamically with each other....

  • LCL, an open source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

     framework
    Software framework
    In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...

     very similar (but not a clone, even less a port) to VCL, developed for Lazarus
    Lazarus (software)
    Lazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,...

     RAD
    Rapid application development
    Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

     tool.
  • Firemonkey, Embarcadero's new cross plattform user interface library introduced with Delphi XE2
  • OpenWire
    OpenWire (library)
    The OpenWire is an open source Dataflow programming VCL and FireMonkey library that extends the functionality of Delphi, C++ Builder and Lazarus by providing pin type component properties. The properties can be connected to each other...

     open source library adding Dataflow programming functionality to VCL.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK