Knihovna vizuálních komponent - Visual Component Library
![]() | Tento článek obsahuje a seznam doporučení, související čtení nebo externí odkazy, ale její zdroje zůstávají nejasné, protože jí chybí vložené citace.Leden 2013) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Původní autoři | Borland |
---|---|
Vývojáři | Embarcadero Technologies |
První vydání | 1995 |
Operační systém | Cross-platform (Microsoft Windows, Operační Systém Mac, iOS, Android ) |
Typ | GUI |
Licence | Komerční |
webová stránka | www docwiki |
The Knihovna vizuálních komponent (VCL) je vizuální součástka -na základě objektově orientovaný rámec pro vývoj uživatelského rozhraní Microsoft Windows aplikace. Je napsán v Objekt Pascal.
Dějiny
VCL byl vyvinut společností Borland pro použití v jeho a je s ním úzce integrován Delphi a C ++ Builder RAD nástroje.
V roce 1995 Borland propuštěn Delphi, jeho první vydání Objekt Pascal IDE a jazyk. Až do té doby byl Borlandův Turbo Pascal pro DOS a Windows z velké části procedurálním jazykem s minimálními objektově orientovanými funkcemi a vytvářením UI frameworků s jazykem požadovaným pomocí frameworků jako Turbo Vision a Objekt Windows Library. OWL, podobný rámec jako MFC, vyžadováno psaní kódu k vytvoření objektů uživatelského rozhraní.
Klíčovým cílem VCL v kombinaci s jazykem Delphi bylo změnit požadavky na budování uživatelského rozhraní. (Pro kontext měla varianta Delphi v Pascalu řadu inovativních objektově orientovaných funkcí, jako jsou vlastnosti a informace o typu běhového prostředí, inspirované Modula a Smalltalk.) V té době hodně práce s kódem uživatelského rozhraní vyžadovalo vytváření tříd zděděných od jiných tříd, a přizpůsobené objekty často nebyly opakovaně použitelné (například tlačítko, které provádí konkrétní akci, nelze znovu použít v jiné aplikaci.)[1] Kód uživatelského rozhraní byl také komplikovaný, což programátora nutilo porozumět a používat Windows API, spravovat prostředky GDI atd.[2] A konečně, vizuální uživatelské rozhraní by pravděpodobně mělo být navrženo vizuálně, a přesto to většina nástrojů - v té době, hlavně Visual Basic - udělala z hlediska výstupního kódu návrháře, čímž vznikla křehká, ručně neupravitelná situace - a problém, který dodnes přetrvává u mnoha rámců uživatelského rozhraní, zejména těch založených na C ++, jako je Qt.[3]
Kombinace jazyka Delphi a rámce VCL napsaného v tomto jazyce je vyřešila pomocí:
- Streamovací rámec, který umožňuje streamování objektu a podobjektů do textového nebo binárního formátu - TComponent, kořenová třída rámce VCL
- Návrhář formulářů, který uložil do streamu a uložil popis objektů, nikoli kód potřebný k jejich vytvoření, s objekty, které se mohou samy vytvořit při streamování popisu zpět
- Jazykové funkce, které umožňovaly přizpůsobení instancí třídy bez podtřídy, dvěma způsoby: zaprvé prostřednictvím použití vlastností, což umožňuje instancím objektu snadno měnit vlastní pole (například titulek) prostřednictvím streamování; zadruhé tím, že umožňuje, aby události - ukazatele metody volané na konkrétních místech v kódu - byly zpracovány jiným objektem; to znamená, že ukazatele metody byly připojeny k instanci objektu.[4] Jinými slovy to vytváří „vlastní chování prostřednictvím delegování místo dědičnosti“.[5]
- Ovládací prvky, které zabalené nativní ovládací prvky Windows, v rámci, který spravuje prostředky[6]
Jejich kombinace vyústila ve vizuálního designéra, který streamoval popis; formulář (okno), který se vytvořil z tohoto popisu, včetně vytvoření všech ostatních komponent v tomto formuláři; a kód napsaný na jednom místě (metody ve formuláři), který lze volat prvky uživatelského rozhraní v reakci na určité akce, jako je kliknutí na tlačítko, které volá obslužnou rutinu události OnClick implementovanou v kódu formuláře. V té době to bylo revoluční, zatímco dnes se jedná o přístup používaný několika dalšími rámci, jako jsou WinForms a Cocoa.
To také umožnilo snadné psaní nových komponent - nových vizuálních nebo nevizuálních tříd. VCL je založen na systému Windows a jeho implementace běžných ovládacích prvků jsou obaly rozhraní Windows API, takže je téměř na zemi a plně nativní. Nové ovládací prvky lze implementovat od nuly nebo lze použít stávající ovládací prvky systému Windows.
S vydáním C ++ Builderu mohl kompilátor Delphi vydávat záhlaví souborů C ++ pro kompilované jednotky Delphi-language, a tak byla pro C ++ k dispozici flexibilita streamovaného vizuálně navrženého uživatelského rozhraní. Komponenty VCL mohou být ve skutečnosti napsány v C ++, ale nakonec zdědí po předcích Delphi, protože kompilátor a linker C ++ Builderu mohou spotřebovávat soubory objektů a hlaviček vytvořené Delphi. To byl jeden z prvních příkladů mezijazykové kompatibility, něco neviditelného až do .Net.
Dnes VCL obsahuje několik stovek vizuálních a nevizuálních komponent, použitelných v jazycích Delphi i C ++.
Technologie
VCL tvoří a třída hierarchie se společnou předek, třída TComponent (která dědí z TObject, kořenové třídy v Delphi Objekt Pascal ). Toto je společný přístup sdílený Evropskou komisí Programovací jazyk Java, Pokec, C# a mnoho dalších objektově orientovaný programovací jazyky.
Komponenty VCL pokrývají ovládací prvky systému Windows, jako jsou okna (TForm třída ), ovládací prvky (např. třídy TButton, TCheckBox, TLabel) a také databáze přístup (např. komponenty ADO nebo IBX) nebo připojení k internetu (Indy komponenty). Přístup komponent umožňuje programátorům rozšířit VCL o mnoho dalších vizuálních a nevizuálních komponent. Existuje velké množství bezplatných a komerčních balíčků komponent. Mezi nimi jsou JEDI, TMS, Developer Express, Software Mitov, Zvyšte software, TurboPower, IOComp, SDL, Technologie DA-SOFT a mnoho dalších.
I když ne všechny komponenty VCL jsou bezpečné pro vlákna, Podporuje VCL vícevláknové také. Jedním z příkladů je integrovaná podpora vícevláknového zpracování OpenWire Knihovna VCL.
VCL poskytuje nativní podporu pro PME (vlastnosti, metody a události) model na .SÍŤ úroveň.[Citace je zapotřebí ]
Hodně z .SÍŤ design, zejména WinForms, je modelován podle VCL. Jeden z hlavních architektů prvních verzí Delphi, Anders Hejlsberg, byl najat uživatelem Microsoft a stal se jedním z hlavních architektů .NET. To se stalo předmětem soudního sporu: v té době (1996) „Borland tvrdil, že Microsoft za posledních 30 měsíců najal 34 zaměstnanců Borlandu, aby ukradl obchodní tajemství Borlandu. Borland rovněž tvrdil, že Microsoft nabízel a dodával drahé návnady společnosti Borland ve dvou případech šlo o pobídky přesahující 1 milion dolarů. “[7] Podle delphi.about.com byl bonus v případě Anderse 3 miliony dolarů. Mnoho vývojářů Delphi považuje C # za docela známé kvůli podobnosti designu.[8]
Související rámce
Cross-platform ekvivalent VCL, tzv CLX (Component Library for Cross Platform), byl později vyvinut pro použití v Delphi, C ++ Builder a Kylix v letech 2000–2001. Bylo však opuštěno.
Druhý multiplatformní rámec, FireMonkey, byl integrován do Delphi a C ++ Builder XE2 v roce 2011. FireMonkey je vektorový rámec WPF podobný uživatelským rozhraním pro Windows, OSX, iOS a Android.
The Lazar project má přenosný (* nix, OS / X, Win32 / 64 + wince) ekvivalent s názvem LCL, který už fungoval, když se objevily Kylix a CLX. Projekt udržel svůj směr a ignoroval Kylix (a později FMX).
OpenOffice.org a tudíž LibreOffice obsahuje nesouvisející grafickou knihovnu s názvem Knihovna vizuálních tříd (VCL).
Viz také
Reference
- ^ Delphi Component Design, Danny Thorpe, s. 9
- ^ Delphi Component Design, Danny Thorpe, str
- ^ http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html#compile-time-form-processing
- ^ http://docwiki.embarcadero.com/RADStudio/XE6/en/VCL_Overview#Using_Events
- ^ Delphi Component Design, Danny Thorpe, str.12
- ^ http://docwiki.embarcadero.com/RADStudio/XE6/en/Understanding_the_Component_Library
- ^ http://delphi.about.com/od/delphifornet/a/conspiracydnet_2.htm
- ^ http://www.glennstephens.com.au/tech/CSharp4DelphiDevelopers.pdf
externí odkazy
- Torryho stránky Delphi Hlavní úložiště pro bezplatné a komerční komponenty VCL
- Knihovna vizuálních komponent JEDI (JVCL) a Knihovna kódů JEDI (JCL): obrovská open source sbírka komponent založených na VCL
- Software TMS Společnost poskytující širokou škálu profesionálních VCL komponentů
- Software Mitov Společnost poskytující VCL komponenty Video, Audio, DSP, Computer Vision a vizualizace dat
- Technologie DA-SOFT Společnost poskytující vysokorychlostní přístup k datovým knihovnám VCL
- Software Steema Poskytování společnosti Teechart Knihovna komponent VCL Charting
- Epina GmbH Společnost poskytující SDL Component Suite (Kolekce VCL)