Užitečné komponenty pro Delphi a C++ Builder, díl 27.

Také se vám nelíbí, že když vytvoříte v Delphi byť jen velmi jednoduchou aplikaci, zabírá vždy několik stovek kilobajtů ? S tím se bohužel nedá nic dělat, pokud použijete VCL. Jsou však i jiné možnosti...
Možností je hned několik. Ti pokročilejší z vás mohou použít například přímo programování pomocí API Windows. Výsledek je pak velmi dobrý a výsledný zkompilovaný soubor je oproti použití VCL nesrovnatelně menší. Vyžaduje to však již pokročilejší znalosti a práce je méně pohodlná.

Další z možností je použít nějakou knihovnu (či spíše knihovny), které se snaží původní VCL nahradit právě s cílem, aby výsledný soubor byl pokud možno co nejmenší. Jeden z těchto balíků knihoven si právě dnes představíme.

Key Objects Library & Mirror Classes Kit

Jedná se projekt ruského (pravděpodobně) autora jménem Vladimir Kladov, který obsahuje množinu objektů, pomocí nichž lze vytvořit aplikace bez použití VCL, a tím pádem výrazným způsobem zmenšit velikost výsledného zkompilovaného exe souboru.

Kromě základní knihovny, která tvoří jakési jádro celého projektu a má téměř 2 MB (což není zrovna málo), si můžete stáhnout ze stránek projektu další a další knihovny, které pokrývají jednotlivé oblasti původní VCL. Naleznete zde tak rovněž podporu pro grafiku, databáze, ActiveX a další a další.

Práce s těmito knihovnami je nevizuální, takže se jedná čistě o psaní zdrojového kódu, což jistým způsobem komplikuje práci. Toho si byl jistě vědom i sám autor, a proto byl kromě balíku KOL (Key Objects Library) vytvořen též balík MCK (Mirror Classes Kit), což je jakási nadstavba objektů KOL. Vlastně je to soubor vizuálních komponent, které "obalují" jádro KOL, a práce s nimi je tak prakticky stejná jako práce s VCL, tj. vizuální konstrukce aplikace pomocí formulářů a dalších prvků grafického rozhraní systému. Do tohoto nadstavbového balíku bylo pochopitelně nutné dostat co největší množství komponent, aby žádná původní komponenta z VCL nechyběla a nebyl tak problém vytvářet aplikace naprosto běžným způsobem. Najdeme zde tedy obdobu všech běžných vizuálních komponent, které pro původní VCL naleznete na záložce Standard a Aditional z palety komponent. Kromě toho jsou k dispozici též nevizuální komponenty, jako je Timer, MainMenu a PopupMenu, různé dialogy a další.

Ani to ale není vše. Stáhnout si můžete též další balík komponent, který není primárně součástí KOL; ten obsahuje dále komponenty pro práci se sítí, dále některé internetové komponenty, další dialogy a podobně. Vybere si jistě každý´, a pokud nepoužíváte vyloženě nějaké speciální komponenty, určitě v balíku najdete vše potřebné. Pochopitelně vám však nic nebrání i nadále používat své vlastní knihovny.

Práce s balíkem KOL a hlavně s jeho nadstavbou MCK má jistá drobná omezení a specifika (například v pojmenovávání objektů kvůli možné kolizi s VCL), ale vše je přehledně popsáno v připojeném souboru, takže ani zde by neměl vzniknout žádný problém.

Na samý závěr jsem si nechal to, co jsem možná měl napsat hned na začátek článku, tedy porovnání velikostí výsledného zkompilovaného souboru pomocí VCL a KOL. Na přiloženém obrázku vidíte jednoduchý formulář s několika málo vizuálními objekty. Byl vytvořen pomocí KOL a výsledný exe soubor má 83 kB. Prázdný formulář bez dalších komponent má jen 21 kB. Naproti tomu aplikace s úplně prázdným formulářem postavená na VCL má 363 kB (platí pro Delphi 6). Programátoři, kteří pracují přímo s API, zřejmě nejsou nijak zvlášť ohromeni, ale běžný "domácí" programátor, který je zvyklý na VCL, je doufám teď alespoň mírně zaujat a toto porovnání vás možná přesvědčí, abyste si balík vyzkoušeli. Zřejmě již nemá cenu připomínat, že vše je freeware a dodáno se zdrojovými kódy.

www
verze: liší se podle jednotlivých součástí
Delphi: 2 až 6
C++ Builder: ?

Diskuze (5) Další článek: První testy grafické karty Parhelia

Témata článku: , , , , , , , , , , , , , , , , , ,