Visuelt komponentbibliotek - Visual Component Library
| Originale forfattere | Borland |
|---|---|
| Utvikler (er) | Embarcadero Technologies |
| Første utgivelse | 1995 |
| Operativsystem | Tverrplattform ( Microsoft Windows , macOS , iOS , Android ) |
| Type | GUI |
| Tillatelse | Kommersiell |
| Nettsted |
www docwiki |
The Visual Component Library ( VCL ) er en visuell komponent basert objekt-orientert rammeverk for utvikling av brukergrensesnittet til Microsoft Windows- programmer. Det er skrevet i Object Pascal .
Historie
VCL ble utviklet av Borland for bruk i og er tett integrert med Delphi og C ++ Builder RAD -verktøy.
I 1995 ga Borland ut Delphi, den første utgivelsen av et Object Pascal IDE og språk. Fram til det tidspunktet var Borlands Turbo Pascal for DOS og Windows stort sett et prosessuelt språk, med minimale objektorienterte funksjoner, og bygde UI-rammer med språket som kreves ved bruk av rammer som Turbo Vision og Object Windows Library . OWL, et lignende rammeverk som MFC , krevde å skrive kode for å lage UI -objekter.
Et sentralt mål med VCL kombinert med Delphi -språket var å endre kravene til å bygge et brukergrensesnitt. (For kontekst hadde Delphi-varianten av Pascal en rekke innovative objektorienterte funksjoner, for eksempel egenskaper og informasjon om kjøretidstype, inspirert av Modula og Smalltalk.) På den tiden krevde mye UI-kodearbeid å lage klasser som arver fra andre klasser, og tilpassede objekter var ofte ikke gjenbrukbare (for eksempel kan en knapp som utfører en bestemt handling ikke gjenbrukes i et annet program.) UI -koden var også komplisert, noe som tvang programmereren til å forstå og bruke Windows API, administrere GDI -ressurser, etc. Til slutt bør et visuelt brukergrensesnitt uten tvil utformes visuelt, og likevel gjorde de fleste verktøyene for å gjøre det - den gangen, hovedsakelig Visual Basic - det når det gjelder designerkoden, og skapte en skjør, ikke -manuelt redigerbar situasjon - en problem som fortsatt vedvarer i dag med mange UI-rammer, spesielt C ++-baserte som Qt.
Kombinasjonen av Delphi -språket og VCL -rammeverket skrevet på det språket adresserte disse ved å:
- Et strømmingsrammeverk, slik at et objekt og underobjekter kan streames til tekst eller binært format - TComponent, rotklassen til VCL -rammeverket
- En skjemadesigner som lagret i en strøm og lagret beskrivelsen av objektene, ikke koden som kreves for å lage dem, med objekter som er i stand til å opprette seg selv når du streamer beskrivelsen tilbake i
- Språkfunksjoner som gjorde det mulig å tilpasse forekomster av en klasse uten underklassifisering, på to måter: For det første ved bruk av egenskaper, slik at forekomster av et objekt kan ha sine egne felt (for eksempel en bildetekst) enkelt endret gjennom streaming; for det andre ved å la hendelser - metodepekere kalt til bestemte steder i koden - håndteres av et annet objekt; det vil si at metodepekene ble festet til en objektforekomst. Med andre ord skaper dette "tilpasset atferd gjennom delegering i stedet for arv".
- Kontroller som pakket innfødte Windows -kontroller, i rammeverk som administrerte ressurser
Kombinasjonen av disse resulterte i en visuell designer som streamet en beskrivelse; et skjema (vindu) som konstruerte seg ut fra den beskrivelsen, inkludert å lage alle de andre komponentene på dette skjemaet; og kode skrives på ett sted (metoder på skjemaet) som kan kalles av UI -elementer som svar på visse handlinger, for eksempel at det klikkes på en knapp som ringer en OnClick -hendelsesbehandler implementert i skjemakoden. På den tiden var dette revolusjonerende, mens det i dag er en tilnærming som brukes av flere andre rammer, for eksempel WinForms og Cocoa.
Dette gjorde det også mulig å skrive nye komponenter - nye visuelle eller ikke -visuelle klasser - enkelt. VCL er Windows-basert, og implementeringen av vanlige kontroller er innpakninger av Windows API, og er dermed nær bakken og fullstendig opprinnelig. Nye kontroller kan implementeres fra bunnen av eller kan bruke eksisterende Windows -kontroller.
Med utgivelsen av C ++ Builder kunne Delphi-kompilatoren sende ut C ++ -overskriftsfiler for kompilerte Delphi-språklige enheter, og dermed ble fleksibiliteten til streaming, visuelt utformet UI-rammeverk tilgjengelig for C ++. VCL -komponenter kan faktisk skrives i C ++, men til syvende og sist arver de fra Delphi -forfedre, siden C ++ Builder -kompilatoren og linkeren kan forbruke objekt- og topptekster som er produsert av Delphi. Dette var et av de første eksemplene på kompatibilitet på tvers av språk, noe som var usett til .Net.
I dag inneholder VCL flere hundre visuelle og ikke-visuelle komponenter, brukbare på både Delphi og C ++ språk.
Teknologi
VCL danner et klassehierarki med en felles stamfar , den TComponent klasse (som arver fra TObject, roten klasse i Delfi Object Pascal ). Dette er en vanlig tilnærming som deles av programmeringsspråket Java , Smalltalk , C# og mange andre objektorienterte programmeringsspråk.
VCL -komponenter dekker Windows -kontroller som Windows (TForm -klasse ), kontroller (f.eks. TButton, TCheckBox, TLabel -klasser) samt databasetilgang (f.eks. ADO- eller IBX -komponenter) eller Internett -tilkoblinger ( Indy -komponenter). Komponenttilnærmingen lar programmerere utvide VCL med mange visuelle og ikke-visuelle tilleggskomponenter. Det er et stort antall gratis og kommersielle komponentpakker. Blant dem er JEDI , TMS , Developer Express , Mitov Software , Raize Software , TurboPower , IOComp , SDL , DA-SOFT Technologies og mange andre.
Selv om ikke alle VCL komponenter er tråd-safe , støtter VCL multi-tråder også. Ett eksempel er den innebygde multi-threading-støtten til OpenWire VCL-biblioteket.
VCL gir innebygd støtte for PME (egenskaper, metoder og hendelser) modell på .NET nivå.
Mye av .NET -designet, spesielt WinForms, er modellert etter VCL. En av hovedarkitektene for de første Delphi -versjonene, Anders Hejlsberg , ble ansatt av Microsoft og ble en av hovedarkitektene for .NET. Dette ble gjenstand for søksmål: på den tiden (1996), "påsto Borland at Microsoft hadde ansatt 34 Borland -ansatte de siste 30 månedene for å stjele Borland -forretningshemmeligheter. Borland hevdet også at Microsoft tilbød og leverte dyre lokker til Borland arbeidere. I to tilfeller var insentiver på 1 million dollar involvert. " Ifølge delphi.about.com var bonusen tre millioner dollar i Anders 'tilfelle. Mange Delphi -utviklere synes C# er ganske kjent på grunn av designlikhetene.
Relaterte rammer
En tverrplattformsekvivalent til VCL, kalt CLX (Component Library for Cross Platform), ble senere utviklet for bruk i Delphi , C ++ Builder og Kylix i 2000–2001. Den ble imidlertid forlatt.
Et annet tverrplattform-rammeverk, FireMonkey , ble integrert i Delphi og C ++ Builder XE2 i 2011. FireMonkey er et vektorbasert WPF-lignende rammeverk for brukergrensesnitt på Windows, OSX, iOS og Android.
Den Lazarus prosjektet har en portabel (* Nix, OS / X, Win32 / 64 + wince) tilsvarende kalt LCL , som allerede virker når Kylix og CLX dukket opp. Prosjektet holdt kursen og ignorerte Kylix (og senere FMX).
OpenOffice.org og dermed LibreOffice inneholder et ikke -relatert grafisk bibliotek kalt Visual Class Library (VCL).
Se også
Referanser
Eksterne linker
- Torrys Delphi Pages Det viktigste depotet for gratis og kommersielle VCL -komponenter
- JEDI Visual Component Library (JVCL) og JEDI Code Library (JCL): stor åpen kildekode -samling av komponenter basert på VCL
- TMS Software Company tilbyr et bredt spekter av profesjonelle VCL -komponenter
- Mitov Software Company som tilbyr video-, lyd-, DSP-, datavisjons- og datavisualisering -VCL -komponenter
- DA-SOFT Technologies Company som tilbyr høyhastighets datatilgang VCL-biblioteker
- Steema Software Company tilbyr Teechart VCL Charting Component -bibliotek
- Epina GmbH Company som tilbyr SDL Component Suite (VCL -samling)