Bingo. Ačkoliv je reklama  důležitá, potřeba spánku ji jasně
          rompuje. Takže už asi moc  nenapíšu (tohle je třetí článek a
          jazyk mám na vestě... jak to  děláš, H.H.? :)). Článek to má
          být propagační a jeho námětem...


                          Knihovna pro Borland Pascal.

                                    CiA 1.00

          Pascal,  ač na  ústupu,  ještě trochu  žije.  CiA mu  doufám
          pomáhá, protože  obsahuje funkce, které žádná  jiná knihovna
          nemá (tj. ani pro Céčko). Abych opět planě netlachal, zkusím
          tak  nějak srovnat  se  známým Allegrem  pro DJGPP  (Céčko).
          Bohužel už jsem dlouho neviděl  novou verzi. Ale snad nebudu
          moc kecat.

          Allegro je  jednoduché a přehledné. Programátor  musí vědět,
          jak  to  uvnitř  počítačů   běhá  a  pokud  existují  nějaké
          nepříjemnosti dané  hardwarem a operačním systémem  (jako že
          existují),  musí je  snášet.  Namátkou klávesnice  vracející
          odjakživa jakési zoufalé kódy. Všichni  mazáci už jsou na to
          zvyklí a nováčci ať si tím taky projdou. Allegro tak vlastně
          pouze zprostředkovává  hardware a služby  operačního systému
          se  všemi  jejich  chybami. Samozřejmě  má  spoustu  dalších
          skvělých  vlastností, tohle  byl jen  příklad pro  pochopení
          principu. Funkce jsou jednoduché a někdy bohužel umí jen to,
          co umí někdo jiný, se všemi neduhy.

          CiA  je knihovna  uvnitř tak  složitá, že  se v  ní většinou
          nevyznají  ani  autoři.  Ale svou  složitostí  vytváří  nové
          funkce a navenek  - v interface - je už  zas jednoduchá. Asi
          největší  hroudou kódu  je  scrollovací  engine běhající  na
          všech  možných  i  nemožně  zabugovaných  kartách  ve  všech
          rozlišeních  a barevných  hloubkách. Uvnitř  děs a  utrpení,
          navenek  naprostá   pohoda,  žádná  starost, v   jakém  jsem
          rozlišení  nebo barevné  hloubce, na  jaké kartě,  jestli to
          není  obyčejná VGA,  jestli nezůstanu  v polích  v odpojeném
          vagónu...  Jako maličkost  vypadá klávesnice,  ale při  její
          nesmírné chaotičnosti  dalo velkou práci vše  sjednotit, aby
          se  třeba při  stiscích šipky  doleva s různými předřazovači
          generovaly víceméně různé eventy, ale  vždy s kódem kLeft, a
          až    do   puštění    klávesy   byla    nastavená   proměnná
          kPressed[kLeft]. Práce s myší je pak slast, protože generuje
          stejné  eventy. V  16bitovém  pascalu,  kde klasický  GetMem
          alokuje  maximálně 64KB,  nabízí CiA  vlastní GetMem,  který
          zvládá libovolně dlouhý  kus paměti. Práce s  INI soubory má
          řadu featur  a hlavně  je optimální...  už jsem  totiž viděl
          knihovnu,  která  při  každém  požadavku  na  zjištění/změnu
          hodnoty  proměnné  pracovala s  diskem.  Operace  s disky  a
          soubory  myslí na  nečekané situace.  Pokud třeba  uprostřed
          kopírování adresáře vyvstane potřeba přepsat nějaký soubor a
          není flagem  řečeno, že  se to smí,  funkce nahodí  dialog a
          zeptá se uživatele co teď,  případně vždy. Vše je samozřejmě
          nezávislé na módu a funguje v textu i grafice, na statické i
          na scrollovací  obrazovce. Systém  loaderů a  writerů bitmap
          z/do různých formátů je zcela nezávislý na tom,které formáty
          jsou  momentálně podporovány.  Množina požadovaných  loaderů
          není pevná, ani se nepíše do nějakého pole, ale jednoduše do
          uses  programu a  kdykoliv jde  měnit. Od  té chvíle  se při
          požadavku na čtení bitmapy vybírá příslušný loader, pokud je
          k dispozici; při ukládání se vybírá z dostupných a pro danou
          bitmapu použitelných writerů ten nejvhodnější.

          Tak to byla  asi nejdelší reklama jakou jsem  kdy psal... Ať
          vám slouží, jak bylo záměrem.

                          CiA je ke stažení na adrese
                    http://www.ms.mff.cuni.cz/shrb5163/#cia
                      Uvedené featury platí od verze 1.00.

                                                     za všechny autory
                                                     Dement / Downtown


            výheň