KOL | |
---|---|
Type | Bibliotek |
Udvikler | Vladimir Kladov |
Skrevet i | Pascal |
Operativ system | Windows , Windows Mobile , Linux |
nyeste version | 3.23.5 (27.02.2015) |
Stat | aktiv [1] |
Licens | Freeware |
Internet side | sourceforge.net/projects... |
KOL (Key Objects Library) er et objekttypebibliotek til programmering i Delphi- og Lazarus -miljøet . Hovedmålet med KOL er at reducere størrelsen af det endelige program ( Win32 , GUI ) med 5-10 gange i forhold til, hvad VCL- biblioteket giver . Alle 32-bit versioner af Delphi er understøttet , fra Delphi 2 til BDS 2010.
MCK (Mirror Classes Kit) er et sæt spejlklasser, der giver dig mulighed for visuelt at udvikle et projekt baseret på KOL-biblioteket. MCK-komponenter er installeret på komponentpaletten, arbejdet med dem er det samme, som det normalt gøres i Delphi under visuel udvikling. I det kompilerede projekt er visuelle komponenter erstattet af deres ikke-visuelle modstykker fra KOL. Brug af MCK reducerer størrelsen af det eksekverbare program på samme måde som at bruge KOL ikke-visuelt. Fordelen er visuel udvikling, ulempen er afhængigheden af Delphi-versionen (Delphi2, Delph3, Delphi4, Delphi5, Delphi6, Delphi7, BDS 2005-2012, Kylix og Free Pascal Compiler 1.0.5 og højere understøttes).
KOL-projektet har været drevet af programmøren Vladimir Kladov i omkring ti år. KOL og MCK projekter indeholder hundredvis af komponenter.
Et problem med systemer som RAD er størrelsen af applikationens eksekverbare. Hovedsynderen for dette er implementeringen af OOP- teknologier af visuelle designbiblioteker ( VCL , MFC , Qt ). En af grundene er det højabstraktionsarvesystem, som markant øger koden for basisklasser. I betragtning af det ret imponerende hierarki af VCL grafiske komponenter er deres store størrelse ganske forståelig. Den anden grund er implementeringen af virtuelle metoder af Delphi - kompileren . Almindelige, ikke-virtuelle metoder kan udelukkes af Delphi på linktidspunktet, hvis de ikke kaldes nogen steder i koden. Virtuelle metoder er hårdkodet i VMT, hvis størrelse compileren ikke kan genberegne, så virtuelle metoder er altid inkluderet i den kompilerede kode, selvom de faktisk ikke kaldes nogen steder.
KOL/MCK-udvikleren kunne tilbyde en kompromisløsning, der giver en analog af VCL med mulighed for visuelt design, men med outputstørrelsen på det eksekverbare modul 5-10 gange mindre end med VCL. Både optimering af mange sektioner i assembler og en interessant løsning med den faktiske afvisning af arv i traditionel forstand spillede en rolle her: alle visuelle KOL-komponenter er forekomster af en enkelt enorm TControl, der implementerer funktionaliteten af alle grænsefladeelementer i OS'et på enkelt gang. Vi kan sige, at KOL-løsningen er et OO-tillæg over vindueshåndtaget (håndtaget) "på panden", som ikke skelner mellem forskellige klasser af interface-elementer, ligesom selve OS ikke gør. KOL er formentlig det eneste objektorienterede bibliotek med sådan en arkitektur.
Til KOL-biblioteket (mere præcist, oprindeligt for dets forgænger, XCL-biblioteket), udviklede Vladimir Kladov XHelpGen-dokumentationsgeneratoren, hvis princip ligner Doxygen .
Hjælpefiler genereres automatisk baseret på kommentarer af typen {* }, placeret i kildeteksterne i interfacedelen af modulerne. (symbolet *er valgfrit og kan erstattes af et hvilket som helst andet; desuden er det muligt at bruge flere forskellige symboler, f.eks. til at lokalisere hjælpefiler).
Generering udføres automatisk baseret på kommentarer til kildekoden (på Delphi Pascal-sprog ), og sker, når xHelpGen ved opstart registrerer, at eventuelle kildefiler i den scannede mappe er ændret. Hjælp genereres i HTML -format og er tilgængelig for visning fra enhver browser .