KOL | |
---|---|
Tip de | Bibliotecă |
Dezvoltator | Vladimir Kladov |
Scris in | Pascal |
Sistem de operare | Windows , Windows Mobile , Linux |
ultima versiune | 3.23.5 (27.02.2015) |
Stat | activ [1] |
Licență | Freeware |
Site-ul web | sourceforge.net/projects… |
KOL (Key Objects Library) este o bibliotecă de tipuri de obiecte pentru programare în mediul Delphi și Lazarus . Scopul principal al KOL este de a reduce dimensiunea programului final ( Win32 , GUI ) de 5-10 ori în comparație cu ceea ce oferă biblioteca VCL . Toate versiunile pe 32 de biți ale Delphi sunt acceptate , de la Delphi 2 până la BDS 2010.
MCK (Mirror Classes Kit) este un set de clase oglindă care vă permit să dezvoltați vizual un proiect bazat pe biblioteca KOL. Componentele MCK sunt instalate pe paleta de componente, lucrul cu ele este la fel ca de obicei în Delphi în timpul dezvoltării vizuale. În proiectul compilat, componentele vizuale sunt înlocuite cu omologii lor non-vizuali de la KOL. Utilizarea MCK reduce dimensiunea programului executabil în același mod ca și utilizarea KOL non-vizual. Avantajul este dezvoltarea vizuală, dezavantajul este dependența de versiunea Delphi (sunt acceptate Delphi2, Delph3, Delphi4, Delphi5, Delphi6, Delphi7, BDS 2005-2012, Kylix și Free Pascal Compiler 1.0.5 și superioare).
Proiectul KOL este condus de programatorul Vladimir Kladov de aproximativ zece ani. Proiectele KOL și MCK conțin sute de componente.
O problemă cu sisteme precum RAD este dimensiunea executabilului aplicației. Principalul vinovat pentru aceasta este implementarea tehnologiilor OOP prin biblioteci de design vizual ( VCL , MFC , Qt ). Unul dintre motive este sistemul de moștenire cu abstracție ridicată, care crește semnificativ codul claselor de bază. Având în vedere ierarhia destul de impresionantă a componentelor grafice VCL, dimensiunea lor mare este destul de de înțeles. Al doilea motiv este implementarea metodelor virtuale de către compilatorul Delphi . Metodele obișnuite, non-virtuale pot fi excluse de Delphi la momentul conexiunii dacă nu sunt apelate nicăieri în cod. Metodele virtuale sunt hardcoded în VMT, dimensiunea cărora compilatorul nu o poate recalcula, astfel încât metodele virtuale sunt întotdeauna incluse în codul compilat, chiar dacă nu sunt de fapt apelate nicăieri.
Dezvoltatorul KOL/MCK a reușit să ofere o soluție de compromis care oferă un analog al VCL cu posibilitatea de design vizual, dar cu dimensiunea de ieșire a modulului executabil de 5-10 ori mai mică decât cu VCL. Atât optimizarea multor secțiuni în asamblare, cât și o soluție interesantă cu respingerea efectivă a moștenirii în sensul tradițional au jucat un rol aici: toate componentele vizuale KOL sunt instanțe ale unui singur TControl uriaș care implementează funcționalitatea tuturor elementelor de interfață ale sistemului de operare la o singura data. Putem spune că soluția KOL este un add-on OO peste mânerul ferestrei (mânerul) „pe frunte”, care nu distinge între diferite clase de elemente de interfață, la fel cum sistemul de operare în sine nu face. KOL este probabil singura bibliotecă orientată pe obiecte cu o astfel de arhitectură.
Pentru biblioteca KOL (mai precis, inițial, pentru predecesorul său, biblioteca XCL), Vladimir Kladov a dezvoltat generatorul de documentație XHelpGen, al cărui principiu este similar cu Doxygen .
Fișierele de ajutor sunt generate automat pe baza comentariilor de tip {* }, plasate în textele sursă în partea de interfață a modulelor. (simbolul *este opțional și poate fi înlocuit cu oricare altul; în plus, este posibil să folosiți mai multe simboluri diferite, de exemplu, pentru a localiza fișierele de ajutor).
Generarea este efectuată automat pe baza comentariilor la codul sursă (în limbajul Delphi Pascal ) și are loc atunci când xHelpGen detectează la pornire că orice fișiere sursă din directorul scanat s-au modificat. Ajutorul este generat în format HTML și este disponibil pentru vizualizare din orice browser .