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

Dnes si představíme jednu výbornou komponentu či spíše balík vzájemně spolupracujících komponent, které slouží k editaci textu. Zapomeňte na komponentu Memo z Delphi a zkuste SynEdit.
Nejeden začínající programátor si zkusí vytvořit jednoduchý textový editor na úrovni Poznámkového bloku. Patří to mezi základní úlohy na procvičení spolupráce několika komponent a dá se říci, že ten nejjednodušší editor lze vytvořit prostým umístěním komponenty Memo na formulář. Takový "editor" je sice k ničemu, protože neumožňuje soubory načítat, ukládat ani tisknout, ale jako základ to stačí a můžeme se vrhnout na doplňování dalších funkcí. A když máme základ hotov a naše aplikace je pak prakticky totožná s Poznámkovým blokem, je na čase postoupit o kus dál a doplnit takové funkce jako je automatické vyznačování syntaxe různých jazyků, korekce chyb, export do různých formátů, tisk s náhledem a podobně. A to všechno a mnohem víc právě umí balík komponent SynEdit.

Po instalaci naleznete na paletě dvě nové záložky - SynEdit a SynEdit Highlighters. První, hlavní záložka, obsahuje všechny důležité a základní komponenty celého balíku, druhá záložka obsahuje celkem 42 pomocných komponent, které mají za úkol zvýrazňování syntaxe pro jednotlivé jazyky.

Nejprve tedy první záložka. Zde naleznete hned na začátku dvě klíčové komponenty SynEdit a SynMemo, které tvoří vlastně samotný vizuální základ pro váš editor. Jaký je mezi těmito komponentami rozdíl se mi nepodařilo zjistit, protože vypadají vizuálně stejně a i vlastnosti v Object Inspectoru jsou zcela totožné. Možná je rozdíl vnitřní, týkající se například velikosti otevřeného souboru, ale nechci se pouštět do spekulací.

Toto je tedy základ pro náš malý editor a dalšími komponentami pak můžeme přidávat další funkce. Dvě komponenty se starají o export zapsaného textu do HTML nebo RTF a to přesně v podobě, v jaké se text zobrazuje. Pokud tedy na něj aplikujete některý z "filtrů" na zvýrazňování syntaxe (viz. dále), i toto bude exportováno.

Mezi další užitečné komponenty (opět si nebudeme popisovat všechny) patří například komponenta na automatické dokončování slov (funkce autocomplete) nebo také automatická korekce chyb či známých překlepů, jejichž tabulku si nejprve nadefinujete. Vhod jistě přijde i jednoduchý nástroj pro záznam a přehrání makra a určitě je důležitý i tisk s možností náhledu.

Poslední komponentou je SynHighlighterManager a není to vlastně komponenta v pravém slova smyslu, nýbrž dialogové okno, kde si v přehledném seznamu můžete vybrat jazyk (či jazyky), který bude použit pro zvýraznění syntaxe. Manažer pak příslušné komponenty ze záložky SynEdit Highlighters umístí na formulář. To lze samozřejmě provést i ručně, toto je jen zjednodušení práce. Zabudování tohoto zvýrazňování do vaší aplikace je pak náramně snadné. V příslušné komponentě SynEdit si najdete vlastnost Highlighter a ze seznamu těch, které na formuláři máte, vyberete ten požadovaný. To lze samozřejmě činit i za běhu aplikace. Seznam podporovaných jazyků je opravdu úctyhodný, celkem 42. Kromě zcela běžných programovacích jazyků, HTML, XML, Javy a PHP (ASP kupodivu chybí) zde najdete i takové „chuťovky“ jako jsou dávkové soubory MS-DOSu, skripty na oblíbený Inno Setup nebo SQL. Troufám si tvrdit, že většinu ostatních „jazyků“ ale nebudete znát ani podle názvu. U každého jazyka máte navíc možnost sami ovlivnit to, jak se budou jednotlivé elementy (klíčová slova, poznámky, čísla atd..) zobrazovat. To vám vlastně dává zcela volnou ruku a původní "standardní" hodnoty si můžete libovolně upravit. Vzhledem k modularitě celého systému není problém další jazyky přidávat a uvnitř balíku komponent naleznete i návod, jak si vytvořit vlastní.

Tento balík komponent je opravdu velmi povedený a může vám usnadnit spoustu práce. Vytváříte-li si tedy nějaký vlastní poznámkový blok (či programátorský editor) na míru, bude tento balík velmi dobrou volbou.

www
verze: 1.1
Delphi: 3 - 6
C++ Builder: 3 - 6
Kylix: ano

Diskuze (7) Další článek: Nejaktivnější červi a viry v březnu

Témata článku: Software, Programování, Syntax, Díl, Klíčová funkce, Užitečný filtr, Editor, Záložka, Automatická korekce, HTML Editor, Důležitý soubor, Klíčová vlastnost, Komponenta


Určitě si přečtěte

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 28

Šmírovačka kamerami Googlu: Koukněte se, co nového zachytily na Street View

Šmírovačka kamerami Googlu: Koukněte se, co nového zachytily na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 44

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

** Total Commander je na Windows takřka legendou ** Licence však stojí více než tisíc korun ** Našli jsme pro vás deset alternativ dostupných zdarma

Karel Kilián | 140

Sex a rozmnožování při mezihvězdné cestě: Kolik lidí je potřeba pro let k Proximě Centauri?

Sex a rozmnožování při mezihvězdné cestě: Kolik lidí je potřeba pro let k Proximě Centauri?

** Vědci spočítali, jak velká by musela být posádka pro vícegenerační let k nejbližší hvězdné soustavě ** Proxima Centauri se nachází 4,3 světelných let od nás ** Za současných technologií bychom k ní letěli 6300 let

Petr Kubala | 53

Takhle zemřete, když asteroid dopadne na vaše město

Takhle zemřete, když asteroid dopadne na vaše město

** Jak by to dopadlo, kdyby na světovou metropoli či do nedalekého moře dopadl velký asteroid? ** Simulovali to odborníci z University of Southampton ** Výsledky jsou velmi zajímavé

Petr Kubala | 32


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji