Visuelt komponentbibliotek - Visual Component Library
| Originale forfattere | Borland |
|---|---|
| Udvikler (er) | Embarcadero Technologies |
| Første udgivelse | 1995 |
| Operativ system | På tværs af platforme ( Microsoft Windows , macOS , iOS , Android ) |
| Type | GUI |
| Licens | Kommerciel |
| Internet side |
www docwiki |
Den Visual Component Library ( VCL ) er en visuel komponent baseret objektorienteret ramme for udviklingen af brugergrænsefladen i Microsoft Windows- programmer. Det er skrevet i Object Pascal .
Historie
VCL blev udviklet af Borland til brug i og er tæt integreret med dets Delphi og C ++ Builder RAD -værktøjer.
I 1995 udgav Borland Delphi, den første udgivelse af et Object Pascal IDE og sprog. Indtil da var Borlands Turbo Pascal til DOS og Windows stort set et proceduremæssigt sprog med minimale objektorienterede funktioner og opbygning af UI-rammer med det sprog, der kræves ved hjælp af rammer som Turbo Vision og Object Windows Library . OWL, en lignende ramme til MFC , krævede at skrive kode for at oprette UI -objekter.
Et centralt mål med VCL kombineret med Delphi -sproget var at ændre kravene til opbygning af en brugergrænseflade. (For kontekst havde Delphi-varianten af Pascal en række innovative objektorienterede funktioner, såsom egenskaber og oplysninger om runtime-type, inspireret af Modula og Smalltalk.) På det tidspunkt krævede meget UI-kodearbejde at oprette klasser, der arver fra andre klasser, og tilpassede objekter kunne ofte ikke genbruges (for eksempel kan en knap, der udfører en bestemt handling, ikke genbruges i en anden applikation.) UI -kode var også kompliceret, hvilket tvang programmereren til at forstå og bruge Windows API, styre GDI -ressourcer osv. Endelig burde en visuel brugergrænseflade uden tvivl være designet visuelt, og alligevel gjorde de fleste værktøjer til at gøre det - dengang, hovedsageligt Visual Basic - det med hensyn til designerens udlæsningskode, hvilket skabte en skrøbelig, ikke -manuelt redigerbar situation - en problem, der stadig vedvarer i dag med mange UI-rammer, især C ++-baserede dem som Qt.
Kombinationen af Delphi -sproget og VCL -rammen skrevet på dette sprog adresserede disse ved:
- En streaming -ramme, der tillader, at et objekt og subobjekter streames til tekst eller binært format - TComponent, rodklassen i VCL -rammen
- En formdesigner, der gemte i en stream, gemmer beskrivelsen af objekterne ikke den kode, der kræves for at oprette dem, med objekter, der er i stand til at oprette sig selv, når beskrivelsen streames tilbage i
- Sprogfunktioner, der gjorde det muligt at tilpasse forekomster af en klasse uden underklassificering på to måder: For det første ved hjælp af egenskaber, der tillod forekomster af et objekt at få sine egne felter (f.eks. En billedtekst) let ændret gennem streaming; for det andet ved at tillade, at hændelser - metodepunkter, der kaldes til bestemte steder i koden - håndteres af et andet objekt; det vil sige, at metodepegene blev knyttet til en objektforekomst. Med andre ord skaber dette "brugerdefineret adfærd gennem delegering i stedet for arv".
- Kontrolelementer, der omsluttede native Windows -kontroller, inden for rammer, der administrerede ressourcer
Kombinationen af disse resulterede i en visuel designer, der streamede en beskrivelse; en form (vindue), der konstruerede sig ud fra denne beskrivelse, herunder oprettelse af alle de andre komponenter på denne formular; og kode skrives ét sted (metoder på formularen), der kunne kaldes af UI -elementer som reaktion på visse handlinger, f.eks. ved at der klikkes på en knap, der kalder en OnClick -hændelseshandler implementeret i formkoden. På det tidspunkt var dette revolutionerende, mens det i dag er en tilgang, der bruges af flere andre rammer, såsom WinForms og Cocoa.
Dette gjorde også, at nye komponenter - nye visuelle eller ikke -visuelle klasser - let kunne skrives. VCL er Windows-baseret, og dens implementeringer af almindelige kontroller er indpakninger af Windows API, og er således tæt på jorden og fuldt ud native. Nye kontroller kan implementeres fra bunden eller kan bruge eksisterende Windows -kontroller.
Med udgivelsen af C ++ Builder kunne Delphi-kompilatoren udsende C ++-header-filer til kompilerede Delphi-sprogede enheder, og fleksibiliteten i streaming, visuelt designet UI-ramme blev tilgængelig for C ++. VCL -komponenter kan faktisk skrives i C ++, men i sidste ende arves fra Delphi -forfædre, da C ++ Builder -kompilatoren og linkeren kan forbruge objekt- og headerfiler, der er produceret af Delphi. Dette var et af de første eksempler på kompatibilitet på tværs af sprog, noget der var uset indtil .Net.
I dag indeholder VCL flere hundrede visuelle og ikke-visuelle komponenter, der kan bruges på både Delphi og C ++ sprog.
Teknologi
VCL danner en klasse hierarki med en fælles forfader , den TComponent klasse (som arver fra TObject, roden klasse i Delphi Object Pascal ). Dette er en fælles tilgang, der deles af programmeringssproget Java , Smalltalk , C# og mange andre objektorienterede programmeringssprog.
VCL -komponenter dækker Windows -kontroller som windows (TForm -klasse ), kontroller (f.eks. TButton, TCheckBox, TLabel -klasser) samt databaseadgang (f.eks. ADO- eller IBX -komponenter) eller internetforbindelser ( Indy -komponenter). Komponentmetoden gør det muligt for programmører at udvide VCL med mange visuelle og ikke-visuelle yderligere komponenter. Der er et stort antal gratis og kommercielle komponentpakker. Blandt dem er JEDI , TMS , Developer Express , Mitov Software , Raize Software , TurboPower , IOComp , SDL , DA-SOFT Technologies og mange andre.
Selvom ikke alle VCL-komponenter er trådsikre , understøtter VCL også multi-threading . Et eksempel er den indbyggede multi-threading-understøttelse af OpenWire VCL-biblioteket.
VCL giver indbygget support til PME (egenskaber, metoder og begivenheder) på .NET -niveau.
Meget af .NET -designet, især WinForms, er modelleret efter VCL. En af hovedarkitekterne i de første Delphi -versioner, Anders Hejlsberg , blev ansat af Microsoft og blev en af hovedarkitekterne for .NET. Dette blev genstand for en retssag: på det tidspunkt (1996), "påstod Borland, at Microsoft havde ansat 34 Borland -medarbejdere i løbet af de sidste 30 måneder for at stjæle Borland -forretningshemmeligheder. Borland hævdede også, at Microsoft tilbød og leverede dyre lokker til Borland arbejdere. I to tilfælde var der tale om incitamenter på 1 million dollars. " Ifølge delphi.about.com var bonussen tre millioner dollars i Anders 'tilfælde. Mange Delphi -udviklere finder C# ganske velkendt på grund af designlighederne.
Relaterede rammer
En cross-platform ækvivalent til VCL, kaldet CLX (Component Library for Cross Platform), blev senere udviklet til brug i Delphi , C ++ Builder og Kylix i 2000-2001. Det blev imidlertid opgivet.
En anden tværgående platform, FireMonkey , blev integreret i Delphi og C ++ Builder XE2 i 2011. FireMonkey er en vektorbaseret WPF-lignende ramme for brugergrænseflader på Windows, OSX, iOS og Android.
Den Lazarus -projektet har en bærbar (* nix, OS / X, Win32 / 64 + WinCE) tilsvarende kaldet LCL , som allerede arbejder når Kylix og CLX opstået. Projektet fastholdt kursen og ignorerede Kylix (og senere FMX).
OpenOffice.org og dermed LibreOffice indeholder et ikke -relateret grafisk bibliotek kaldet Visual Class Library (VCL).
Se også
Referencer
eksterne links
- Torrys Delphi -sider Hovedlageret til gratis og kommercielle VCL -komponenter
- JEDI Visual Component Library (JVCL) og JEDI Code Library (JCL): enorm open source -samling af komponenter baseret på VCL
- TMS -softwarefirma, der leverer en bred vifte af professionelle VCL -komponenter
- Mitov Software Company leverer video-, lyd-, DSP-, computervision- og datavisualisering VCL -komponenter
- DA-SOFT Technologies Company leverer højhastighedsdataadgang til VCL-biblioteker
- Steema Software Company leverer Teechart VCL Charting Component -bibliotek
- Epina GmbH Company leverer SDL Component Suite (VCL -samling)