CRT v Delphi? - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Komponenty

CRT v Delphi?

serial

30. dubna 2002, 00.00 | Vzpomínáte si ještě na své začátky v Pascalu, jak jste si hráli s CRT grafikou. Nezdál se vám toto textové rozhraní skoro geniální a zcela dostačující pro většinu případů?

Vzpomínáte si ještě na své začátky v Pascalu, jak jste si hráli s CRT grafikou. Nezdálo se vám toto textové rozhraní skoro geniální a zcela dostačující pro většinu případů? Připouštím, že pro složité aplikace to zrovna není nejlepší rozhraní. Ale pro jednoduchoučké aplikace je jako dělané.

Takový malý příklad: potřebujete získat od uživatele nějakou hodnotu. Použijete-li klasické rozhraní Windows (tj. Form, Label, Edit, Button), tak se mi to zdá jako mnoho povyku pro nic. Zatímco když to napíšete v CRT, pak se vše odehraje na jediné řádce a v kódu to budou jen dva příkazy.

Doba CRT je však „nenávratně“ pryč. Pominu-li fakt, že nynější Delphi podporují vytvoření konsolové aplikace, tak lze říci, že podpora bývalé CRT grafiky není, přesněji řečeno není využívána.

Přesto má Delphi implementovány API funkce, které v podstatě nahrazují kompletní implementaci CRT, tak jak ji známe z Pascalu. Nutno se ovšem přiznat, že nikdo včetně mě nebude ochoten se učit nové názvy starých funkcí pro technologii, která byla v posledních pár letech zcela vytlačena z trhu.

Kde a kdo by ji mohl použít?

Tuto základní otázku se pokusím zodpovědět takovým způsobem, abych co nejlépe zobrazil předměty otázky.

Ad 1) Kdo resp. pro koho. Asi tušíte, odpovědí zde bude: převážně pro interní či expertní užití. Je téměř nemyslitelné současným téměř nic neznajícím uživatelům Windows nainstalovat aplikaci, která vypadá jako DOS aplikace :-)

Ad 2) Výtvory takto napsané pravděpodobně budou nějaké velmi krátké programy či utility. Což také říká, že to bude pro ty, jež o systému něco vědí. Většina laiků chcete mít vše v jednom.

Ale je tu ještě jedna nezmíněná otázka. Proč? Implementace CRT má jednu zjevnou výhodu. Již jste si zřejmě všichni povšimli toho, že množství lidí se zabývá tím, jak zmenšovat vytvořené programy. Různí lidí preferují různé prostředky. Já osobně používám prostředky, které pakují např. AS Pack. Jiní se v záchvatu šílenosti střemhlav vrhají do WinAPI či MFC. Ani jedno ovšem není cílem toho článku.

Nemusím říkat, že vlastní implementace CRT resp. používání konsolových aplikací vede rovněž často ke značné úspoře na velikosti výsledných spustitelných souborů. Mimoto pokud budete puntičkáři, tak i na tyto soubory můžete stále aplikovat již zmíněné a metody na zmenšení velikosti.

Ale já tu pořade kecám a kecám, a vy mě nikdo nezadržíte. Neřeknete si, že bych vám taky mohl ukázat resp. dát ty kódy.

Tady jsou! (4 kB) Velectěný pan Frank Zimmer si kdysi dal takovou práci a vytvořil unitu, která je ve vší podstatě implementací klasické dosové CRT ovšem pro Windows resp. Delphi. Tato verze, kterou vám zde přikládám je psána pro Delphi 5, kde jsem ji také testoval. Bohužel, i přes podobnou větu v autorovi dokumentaci mi nefungovala. Byl jsem nucen ji na pár místech opravit.

Vlastní instalace lze provést několika možnostmi. Autor předpokládá, že si ji vložíte jako komponentu do Delphi. To se zase moc nelíbí mě. Myslím si, že snad každý umí přidat do uses unitu crt32. Tudíž stačí mít jen správně nastavenou cestu na místě, kde ji máte zkompilovanou.

Tématické zařazení:

 » Rubriky  » Komponenty  

 » Rubriky  » Delphi  

 » Rubriky  » Windows  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Zatím nebyl uložen žádný příspěvek, buďte první.

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: