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

Obyčejný StringGrid nám příliš možností na zpříjemnění práce pro uživatele nenabízí. Zadávání hodnot různého formátu je těžkopádné a pracné. V tom nám může pomoci dnešní komponenta - XStringrid.

XStringGrid

Jak jsem již naznačil, problém s běžnou komponentou StringGrid je v tom, že nenabízí příliš možností na pohodlné zadávání dat v různých formátech. Do tabulek se obvykle zadávají nejen obyčejné texty nebo číselné hodnoty, ale občas je potřeba zadat i datum nebo vybrat hodnotu z předem připraveného seznamu. Právě tohle a mnoho dalšího umí XStringGrid.

Nejprve krátce k instalaci, která byla tentokrát naprosto bezproblémová. Stačí načíst instalační balíček pro příslušnou verzi Delphi (či C++ Builderu) a nainstalovat. Poté již najdete na paletě novou záložku XStringGrid a v ní celkem 10 komponent, resp. jednu hlavní komponentu XStringGrid a řadu tzv. editorů (viz. dále).

Nejprve si tedy popíšeme vlastnosti hlavní komponenty XStringGrid. Na první pohled vypadá jako běžný StringGrid. Nalezneme zde ale mimo jiné jeden hlavní rozdíl a tím je možnost měnit barvu či typy písma jednotlivých buněk (resp. jednotlivých sloupců). Toho se dá velmi šikovně využít (podobně jako v přiložené demoaplikaci) pro funkce kontextového menu.

A teď se dostáváme k tomu hlavnímu čili ke zmiňovaným editorům. Pomocí nich je právě možné rozšířit možnosti uživatelské obsluhy StringGridu. Jedná se o jednotlivé samostatné komponenty, které ovšem pracují pouze ruku v ruce s hlavní komponentou. U hlavní komponenty XStringGrid zvolíme v Object inspectoru obvyklým způsobem položku Columns. Otevře se nám dialogové okno, ve kterém nadefinujeme jednotlivé sloupce výsledné tabulky, názvy jejich hlaviček (včetně barvy a fontu) a šířku sloupce. V druhé polovině nastavení pak určíme vlastnosti buněk v daném sloupci, tedy barvu, typ písma a zarovnání. Poslední položkou, určující vlastnosti buněk příslušného sloupce, je právě položka Editor. Zde si v rozbalovacím seznamu vybereme jeden z těch, které jsme předem umístili na formulář. Tím vlastně určíme typ dat, které budeme do daného sloupce zadávat, neboť každý z editorů je zaměřen na určitý specifický úkol. Když poté ve spuštěné aplikaci klikneme na danou buňku ve snaze vložit data, na základě typu přiřazeného editoru se nám otevře např. kalendář, zaškrtávací seznam a podobně (viz. dále).

Jaké editory tedy máme k dispozici? Již byla řeč o kalendáři, který se otevře vedle buňky a pomocí klasického kalendářového dialogu z Delphi umožňuje velmi pohodlně vložit datum. Další možností je rozbalovací seznam, tedy předem připravený ComboBox s hodnotami, z nichž si vybereme nějakou položku a ta bude vložena do buňky. Dále je zde jakýsi minieditor, kdy se u buňky zobrazí zvláštní tlačítko se dvěma tečkami (podobné jaké znáte z Object Inspectoru Delphi), po jehož poklepání se zobrazí jednoduchý dialog pro zadání textu. Má tu výhodu, že text může být předem vyplněn nějakou implicitní hodnotou a pak stačí jen klikat na buňky a text je ihned vyplněn. Další editor je klasický UpDown, tedy dvojitá šipka, sloužící k zadávání číselných hodnot pomocí těchto dvou šipek a myši. Dále je zde obdoba ComboBoxu s CheckBoxy, který umožní vybrat ze seznamu více hodnot najednou. Zajímavě vypadá i editor, který otevře malé okno s ikonami. Index zvolené ikony je pak vložen do buňky.

Jak vidíte, možností je celá řada a oproti běžnému StringGridu je práce pro uživatele pohodlnější. Možná je škoda, že nelze určovat vlastnosti (editory) pro každou jednotlivou buňku zvlášť, ale pouze vždy pro celý sloupec. To by ale situaci trošku zkomplikovalo a navíc autor zřejmě počítal s "klasickým" modelem tabulky databázového typu, kdy jsou vždy ve sloupcích hodnoty stejného typu.

www
verze: 2.6
Delphi: 3-7
C++ Builder: 3, 5

Váš názor Další článek: Apache 2.0.47 opravuje čtyři bezpečnostní chyby

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