Biblioteca de componentes visuales - Visual Component Library

Biblioteca de componentes visuales (VCL)
Autor (es) original (es) Borland
Desarrollador (es) Tecnologías Embarcadero
Versión inicial 1995 ; Hace 26 años ( 1995 )
Sistema operativo Multiplataforma ( Microsoft Windows , macOS , iOS , Android )
Escribe GUI
Licencia Comercial
Sitio web www .embarcadero .com / kr / products / rad-studio
docwiki .embarcadero .com / RADStudio / XE6 / es / VCL _Descripción general

La biblioteca de componentes Visual ( VCL ) es una representación visual componente basado orientado a objetos marco para el desarrollo de la interfaz de usuario de Microsoft Windows aplicaciones. Está escrito en Object Pascal .

Historia

La VCL fue desarrollada por Borland para su uso en, y está estrechamente integrada con, sus herramientas RAD de Delphi y C ++ Builder .

En 1995, Borland lanzó Delphi, su primer lanzamiento de un IDE y lenguaje Object Pascal . Hasta ese momento, Turbo Pascal de Borland para DOS y Windows era en gran parte un lenguaje de procedimientos, con características mínimas orientadas a objetos, y construía marcos de interfaz de usuario con el lenguaje requerido usando marcos como Turbo Vision y Object Windows Library . OWL, un marco similar a MFC , requería escribir código para crear objetos de interfaz de usuario.

Un objetivo clave de VCL combinado con el lenguaje Delphi fue cambiar los requisitos de construcción de una interfaz de usuario. (Para el contexto, la variante Delphi de Pascal tenía una serie de características innovadoras orientadas a objetos, como propiedades e información de tipo de tiempo de ejecución, inspiradas en Modula y Smalltalk). En ese momento, gran parte del trabajo del código de la interfaz de usuario requería crear clases heredadas de otras clases, y los objetos personalizados a menudo no eran reutilizables (por ejemplo, un botón que realiza una acción específica no se puede reutilizar en una aplicación diferente). El código de la interfaz de usuario también era complicado, lo que obligaba al programador a comprender y usar la API de Windows, administrar los recursos de GDI, etc. Finalmente, podría decirse que una interfaz de usuario visual debería diseñarse visualmente y, sin embargo, la mayoría de las herramientas para hacerlo, en ese momento, principalmente Visual Basic, lo hicieron en términos de código de salida del diseñador, creando una situación frágil, no editable manualmente: una problema que todavía persiste hoy en día con muchos marcos de interfaz de usuario, particularmente los basados ​​en C ++ como Qt.

La combinación del lenguaje Delphi y el marco VCL escrito en ese lenguaje abordó estos problemas mediante:

  • Un marco de transmisión, que permite transmitir un objeto y subobjetos a formato de texto o binario: TComponent, la clase raíz del marco VCL
  • Un diseñador de formularios que guardó en una secuencia, guardando la descripción de los objetos, no el código requerido para crearlos, con objetos capaces de auto-creación al transmitir la descripción nuevamente en
  • Funciones de lenguaje que permitieron personalizar instancias de una clase sin subclases, de dos maneras: primero, mediante el uso de propiedades, permitiendo que las instancias de un objeto tengan sus propios campos (como un título) fácilmente cambiadas a través de la transmisión; en segundo lugar, al permitir que los eventos (punteros de método llamados en lugares específicos del código) sean manejados por otro objeto; es decir, los punteros de método se adjuntaron a una instancia de objeto. En otras palabras, esto crea "comportamientos personalizados mediante delegación en lugar de herencia".
  • Controles que envolvieron los controles nativos de Windows, en un marco que administraba los recursos

La combinación de estos resultó en un diseñador visual que transmitió una descripción; un formulario (ventana) que se construyó a sí mismo a partir de esa descripción, incluida la creación de todos los demás componentes de ese formulario; y el código que se escribe en un lugar (métodos en el formulario) que los elementos de la interfaz de usuario podrían llamar en respuesta a ciertas acciones, como un botón al que se hace clic para llamar a un controlador de eventos OnClick implementado en el código del formulario. En ese momento, esto fue revolucionario, mientras que hoy es un enfoque utilizado por varios otros marcos, como WinForms y Cocoa.

Esto también permitió que nuevos componentes (nuevas clases visuales o no visuales) se escribieran fácilmente. El VCL está basado en Windows y sus implementaciones de controles comunes son envoltorios de la API de Windows, por lo que está cerca del suelo y es completamente nativo. Se pueden implementar nuevos controles desde cero o se pueden utilizar los controles de Windows existentes.

Con el lanzamiento de C ++ Builder, el compilador de Delphi podría emitir archivos de encabezado C ++ para unidades compiladas en lenguaje Delphi, y así la flexibilidad del marco de interfaz de usuario diseñado visualmente y de transmisión estuvo disponible para C ++. De hecho, los componentes de VCL pueden escribirse en C ++, pero en última instancia heredan de los antepasados ​​de Delphi, ya que el compilador y enlazador de C ++ Builder pueden consumir archivos de encabezado y objeto producidos por Delphi. Este fue uno de los primeros ejemplos de compatibilidad entre idiomas, algo que no se había visto hasta .Net.

Hoy en día, la VCL incluye varios cientos de componentes visuales y no visuales, utilizables en los lenguajes Delphi y C ++.

Tecnología

VCL forma una jerarquía de clases con un ancestro común , la clase TComponent (que hereda de TObject, la clase raíz en Delphi Object Pascal ). Este es un enfoque común compartido por el lenguaje de programación Java , Smalltalk , C # y muchos otros lenguajes de programación orientados a objetos.

Los componentes VCL cubren controles de Windows como Windows ( clase TForm ), controles (p. Ej., Clases TButton, TCheckBox, TLabel) así como acceso a bases de datos (p. Ej., Componentes ADO o IBX) o conexiones a Internet ( componentes Indy ). El enfoque de componentes permite a los programadores extender el VCL con muchos componentes adicionales visuales y no visuales. Existe una gran cantidad de paquetes de componentes comerciales y gratuitos. Entre ellos se encuentran JEDI , TMS , Developer Express , Mitov Software , Raize Software , TurboPower , IOComp , SDL , DA-SOFT Technologies y muchos otros.

Si bien no todos los componentes de VCL son seguros para subprocesos , VCL también admite subprocesos múltiples . Un ejemplo es el soporte multihilo integrado de la biblioteca OpenWire VCL.

VCL proporciona soporte nativo para el modelo PME (propiedades, métodos y eventos) a nivel .NET .

Gran parte del diseño de .NET , especialmente WinForms, se basa en el modelo de VCL. Uno de los principales arquitectos de las primeras versiones de Delphi, Anders Hejlsberg , fue contratado por Microsoft y se convirtió en uno de los principales arquitectos de .NET. Esto se convirtió en el tema de una demanda: en ese momento (1996), "Borland alegó que Microsoft había contratado a 34 empleados de Borland durante los últimos 30 meses para robar secretos comerciales de Borland. Borland también afirmó que Microsoft ofreció y entregó señuelos costosos a Borland trabajadores. En dos casos, se involucraron incentivos superiores a $ 1 millón ". Según delphi.about.com, el bono fue de tres millones de dólares en el caso de Anders. Muchos desarrolladores de Delphi encuentran C # bastante familiar, debido a las similitudes de diseño.

Marcos relacionados

Un equivalente multiplataforma de VCL, llamado CLX (Biblioteca de componentes para multiplataforma), se desarrolló posteriormente para su uso en Delphi , C ++ Builder y Kylix en 2000–2001. Sin embargo, fue abandonado.

Un segundo marco multiplataforma, FireMonkey , se integró en Delphi y C ++ Builder XE2 en 2011. FireMonkey es un marco similar a WPF basado en vectores para UI en Windows, OSX, iOS y Android.

El proyecto Lazarus tiene un equivalente portátil (* nix, OS / X, Win32 / 64 + wince) llamado LCL , que ya estaba funcionando cuando surgieron Kylix y CLX. El proyecto mantuvo su curso e ignoró a Kylix (y más tarde a FMX).

OpenOffice.org y, por lo tanto, LibreOffice contienen una biblioteca gráfica no relacionada llamada Visual Class Library (VCL).

Ver también

Referencias

enlaces externos