Bibliothek für visuelle Komponenten

Bibliothek der visuellen Komponenten (VCL)
Originalautor (en) Borland
Entwickler (en) Embarcadero -Technologien
Erstveröffentlichung 1995; Vor 27 Jahren
Betriebssystem Plattformübergreifend (Microsoft Windows, Mac OS, iOS, Android)
Typ GUI
Lizenz Kommerziell
Webseite www.Embarcadero.com/kr/Produkte/rad-studio
Docwiki.Embarcadero.com/Radstudio/Xe6/en/Vcl_Überblick

Das Bibliothek für visuelle Komponenten (Vcl) ist ein visuelles Komponente-basierend objektorientierter Rahmen Zur Entwicklung der Benutzeroberfläche von Microsoft Windows Anwendungen. Es ist geschrieben in Objekt Pascal.

Geschichte

Die VCL wurde von entwickelt von Borland Für die Verwendung in und ist eng integriert in seine Delphi und C ++ Builder Rad Werkzeug.

1995 veröffentlichte Borland Delphi, seine erste Veröffentlichung von einem Objekt Pascal Ide und Sprache. Bis zu diesem Zeitpunkt war Borlands Turbo-Pascal für DOS und Windows größtenteils eine prozedurale Sprache mit minimalen objektorientierten Merkmalen und Erstellen von UI-Frameworks mit der Sprache, die mit Rahmenbedingungen wie erforderlich ist Turbo Vision und Objekt Windows -Bibliothek. Eule, ein ähnlicher Rahmen wie MFC, Erforderliches Schreiben von Code zum Erstellen von UI -Objekten.

Ein zentrales Ziel der VCL in Kombination mit dem Delphi Sprache bestand darin, die Anforderungen für den Erstellen einer Benutzeroberfläche zu ändern. (Für den Kontext hatte die Delphi-Variante von Pascal eine Reihe innovativer objektorientierter Merkmale wie Eigenschaften und Laufzeit-Informationen, die von Modula und SmallTalk inspiriert wurden.) Zu dieser Zeit erforderte viele UI-Code-Arbeiten, die Erstellung von Klassen erstellen, die von anderen Klassen erben werden, aus anderen Klassen,, und angepasste Objekte waren oft nicht wiederverwendbar (z. B. eine Taste, die eine bestimmte Aktion ausführt, kann nicht in einer anderen Anwendung wiederverwendet werden.)[1] UI -Code war ebenfalls kompliziert und zwang den Programmierer, die Windows -API zu verstehen und zu verwenden, GDI -Ressourcen zu verwalten usw.[2] Schließlich sollte eine visuelle Benutzeroberfläche wohl visuell konzipiert werden, und dennoch die meisten Tools, dies zu dieser Zeit, hauptsächlich visuelles Basic - in Bezug auf den Designerausgabercode und erstellte eine fragile, unbekannte Situation - a Problem, das bis heute bei vielen UI-Frameworks, insbesondere C ++-basiert, wie z. B. QT.[3]

Die Kombination der Delphi -Sprache und des in dieser Sprache geschriebenen VCL -Frameworks befasste sich mit diesen von:

  • Ein Streaming -Framework, mit dem ein Objekt und ein SuboBoDjecs in Text oder binäres Format gestreamt werden können - tkomponent, der Stammklasse des VCL -Frameworks
  • Ein Formulardesigner, der in einem Stream gespeichert ist und die Beschreibung der Objekte speichert, nicht der Code, der zum Erstellen erforderlich ist, wobei Objekte beim Streaming der Beschreibung in die Selbstschaffung in der Lage sind
  • Sprachmerkmale, mit denen Instanzen einer Klasse ohne Unterklasse auf zwei Arten angepasst werden konnten: Erstens durch die Verwendung von Eigenschaften, sodass Instanzen eines Objekts seine eigenen Felder (z. B. eine Bildunterschrift) durch Streaming leicht verändert haben. Zweitens, indem Ereignisse - Methodenzeiger, die an bestimmten Stellen im Code genannt werden - von einem anderen Objekt behandelt werden; Das heißt, die Methodenzeiger wurden an eine Objektinstanz angeschlossen.[4] Mit anderen Worten, dadurch werden "benutzerdefinierte Verhaltensweisen durch Delegation statt Vererbung" erzeugt.[5]
  • Steuerelemente, die native Windows -Steuerelemente einwickelten, in Framework, die Ressourcen verwalteten[6]

Die Kombination von diesen führte zu einem visuellen Designer, der eine Beschreibung streamte; ein Formular (Fenster), das sich aus dieser Beschreibung konstruierte, einschließlich des Erstellens aller anderen Komponenten in dieser Form; und Code, der an einem Ort geschrieben wird (Methoden auf dem Formular), die von UI -Elementen als Antwort auf bestimmte Aktionen aufgerufen werden können, z. Zu dieser Zeit war dies revolutionär, während es heute ein Ansatz ist, der von mehreren anderen Frameworks wie Winforms und Kakao verwendet wird.

Dies ermöglichte auch, dass neue Komponenten - neue visuelle oder nicht visuelle Klassen - leicht geschrieben werden konnten. Die VCL basiert auf Windows und ihre Implementierungen gemeinsamer Steuerelemente sind Wrapper der Windows-API und sind somit nahe am Boden und vollständig nativ. Neue Steuerelemente können von Grund auf neu implementiert werden oder vorhandene Windows -Steuerelemente verwenden.

Mit der Veröffentlichung von C ++ Builder konnte der Delphi-Compiler C ++-Header-Dateien für kompilierte Delphi-Sprache-Einheiten aussagen, sodass die Flexibilität des Streaming, visuell gestalteten UI-Frameworks für C ++ verfügbar wurde. VCL -Komponenten können in der Tat in C ++ geschrieben werden, aber letztendlich von Delphi -Vorfahren erben, da der C ++ -Builder -Compiler und der Linker Objekt- und Header -Dateien konsumieren können, die von Delphi erstellt werden. Dies war eines der ersten Beispiele für die Verbreitung von Verzug, etwas Unsichtbares bis .NET.

Heute enthält die VCL mehrere hundert visuelle und nicht visuelle Komponenten, die sowohl in den Delphi- als auch in C ++-verwendbar sind.

Technologie

Vcl bildet a Klasse Hierarchie mit einem gemeinsamen Vorfahrdie tkomponent -Klasse (welche Erben Von Tobject, die Wurzelklasse in Delphi Objekt Pascal). Dies ist ein gemeinsamer Ansatz, der von der geteilt wird Java -Programmiersprache, Smalltalk, C# und viele weitere objektorientierter Programmiersprachen.

VCL -Komponenten decken Windows -Steuerelemente wie Windows ab (TForm Klasse), Kontrollen (z. B. Tbutton, Tcheckbox, Tlabel -Klassen) sowie Datenbank Zugriff (z. B. ADO- oder IBX -Komponenten) oder Internetverbindungen (Internetverbindungen (Indy Komponenten). Mit dem Komponentenansatz können Programmierer die VCL mit vielen visuellen und nicht visuellen zusätzlichen Komponenten erweitern. Es gibt eine große Anzahl von kostenlosen und kommerziellen Komponentenpaketen. Unter ihnen sind Jedi, TMS, Entwickler Express, MITOV-Software, Raize-Software, Turbopower, Iocomp, SDL, DA-Soft Technologies und viele andere.

Während nicht alle VCL -Komponenten sind Thread-safe, VCL unterstützt Multi-Threading zu. Ein Beispiel ist die eingebaute Multi-Threading-Unterstützung der Openwire VCL -Bibliothek.

VCL bietet native Unterstützung für das PME -Modell (Eigenschaften, Methoden und Ereignisse) an der .NETZ eben.

Viel von der .NETZ Das Design, insbesondere die Winform, wird nach der VCL modelliert. Einer der Hauptarchitekten der ersten Delphi -Versionen, Anders Hejlsberg, wurde von eingestellt von Microsoft und wurde einer der Hauptarchitekten von .NET. Dies wurde Gegenstand einer Klage: Zu dieser Zeit (1996) "behauptete Borland, Microsoft habe in den letzten 30 Monaten 34 Mitarbeiter von Borland eng Arbeiter. In zwei Fällen waren Anreize, die 1 Million US -Dollar belegen, beteiligt. "[7] Laut Delphi.about.com betrug der Bonus drei Millionen Dollar im Fall von Anders. Viele Delphi -Entwickler finden C# aufgrund der Entwurfsähnlichkeiten sehr vertraut.[8]

Verwandte Frameworks

Ein plattformübergreifendes Äquivalent der VCL, genannt CLX (Komponentenbibliothek für Cross -Plattform) wurde später für die Verwendung in der Verwendung entwickelt Delphi, C ++ Builder und Kylix im Jahr 2000–2001. Es wurde jedoch aufgegeben.

Ein zweites plattformübergreifendes Framework, Feueraffe, wurde 2011 in Delphi und C ++ Builder XE2 integriert. Fironemekey ist ein vektorbasiertes WPF-ähnliches Framework für UIS unter Windows, Osx, iOS und Android.

Das Lazarus Das Projekt verfügt Lcl, was bereits arbeitete, als Kylix und CLX auftauchten. Das Projekt hielt seinen Kurs bei und ignorierte Kylix (und später FMX).

OpenOffice.org und somit Libreoffice enthalten eine nicht verwandte Grafikbibliothek namens namens Visuelle Klassenbibliothek (VCL).

Siehe auch

Verweise

  1. ^ Delphi Component Design, Danny Thorpe, P9
  2. ^ Delphi Component Design, Danny Thorpe, P11
  3. ^ "Verwenden einer Designer -UI -Datei in Ihrer Anwendung | Qt 4.8".
  4. ^ "VCL -Übersicht - Rad Studio".
  5. ^ Delphi Component Design, Danny Thorpe, P12
  6. ^ "Verständnis der Komponentenbibliothek - Rad Studio".
  7. ^ "Delphi Tutorials".
  8. ^ "Archivierte Kopie" (PDF). Archiviert von das Original (PDF) Am 2014-01-26. Abgerufen 2014-05-28.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)

Externe Links