stringtranslate.com

Biblioteca de componentes visuales

La biblioteca de componentes visuales ( VCL ) es un marco orientado a objetos basado en componentes visuales para desarrollar la interfaz de usuario de aplicaciones de Microsoft Windows . Está escrito en Object Pascal .

Historia

El VCL fue desarrollado por Borland para su uso y está estrechamente integrado con sus herramientas Delphi y C++Builder RAD .

En 1995, Borland lanzó Delphi, su primera versión de un IDE y lenguaje Object Pascal . Hasta ese momento, Turbo Pascal de Borland para DOS y Windows era en gran medida un lenguaje de procedimiento, con características mínimas orientadas a objetos y que creaba 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 era cambiar los requisitos de creación de una interfaz de usuario. (Para contextualizar, 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 la creación de 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). [1] El código de la interfaz de usuario también era complicado, lo que obligaba al programador a comprender y utilizar la API de Windows y administrar los recursos GDI. , etc. [2] 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 hacían en términos del código de salida del diseñador, creando un situación editable manualmente: un problema que aún persiste hoy en día con muchos marcos de interfaz de usuario, particularmente los basados ​​en C++ como Qt. [3]

La combinación del lenguaje Delphi y el marco VCL escrito en ese lenguaje abordó estos problemas de la siguiente manera:

La combinación de estos dio como resultado un diseñador visual que transmitía una descripción; un formulario (ventana) que se construyó a partir de esa descripción, incluida la creación de todos los demás componentes de ese formulario; y el código escrito en un solo lugar (métodos en el formulario) que los elementos de la interfaz de usuario podrían llamar en respuesta a ciertas acciones, como por ejemplo, al hacer clic en un botón que llama 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ó escribir fácilmente nuevos componentes (nuevas clases visuales o no visuales). La VCL está basada en Windows y sus implementaciones de controles comunes son contenedores de la API de Windows, por lo que está cerca del suelo y es completamente nativa. Se pueden implementar nuevos controles desde cero o utilizar controles existentes de Windows.

Con el lanzamiento de C++ Builder, el compilador de Delphi pudo emitir archivos de encabezado de C++ para unidades compiladas en lenguaje Delphi, por lo que la flexibilidad del marco de interfaz de usuario de transmisión y diseño visual estuvo disponible para C++. De hecho, los componentes 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 objetos y encabezados 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 tanto en lenguajes Delphi como 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 ventanas ( clase TForm ), controles (por ejemplo, clases TButton, TCheckBox, TLabel), así como acceso a bases de datos (por ejemplo, componentes ADO o IBX) o conexiones a Internet ( componentes Indy ). El enfoque de componentes permite a los programadores ampliar la 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 multiproceso integrado de la biblioteca OpenWire VCL.

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

Gran parte del diseño de .NET , especialmente WinForms, sigue 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ó costosos señuelos a Borland. En dos casos se trataba de incentivos que superaban el millón de dólares." [7] Según delphi.about.com, la bonificación 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. [8]

Marcos relacionados

Posteriormente se desarrolló un equivalente multiplataforma de VCL, llamado CLX (Biblioteca de componentes para multiplataforma), 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 interfaces de usuario 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 rumbo e ignoró a Kylix (y más tarde a FMX).

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

Ver también

Referencias

  1. ^ Diseño de componentes de Delphi, Danny Thorpe, p9
  2. ^ Diseño de componentes de Delphi, Danny Thorpe, p11
  3. ^ "Uso de un archivo UI de diseñador en su aplicación | Qt 4.8".
  4. ^ "Descripción general de VCL: RAD Studio".
  5. ^ Diseño de componentes de Delphi, Danny Thorpe, p12
  6. ^ "Comprensión de la biblioteca de componentes - RAD Studio".
  7. ^ "Tutoriales de Delphi".
  8. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 26 de enero de 2014 . Consultado el 28 de mayo de 2014 .{{cite web}}: CS1 maint: archived copy as title (link)