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 |