Sfairadora

  • Referenční příručka

Řádkový editor

Řádkový editor slouží k zadávání hodnoty pomocí jednořádkového textu. Řádkový editor se typicky používá pro zadávání řetězců a číselných hodnot, lze jím však editovat hodnotu libovolného typu. Pro převod obecného typu na zobrazovaný řetězec a zpět se používá standardní mechanismus typové konverze. Pokud toto standardní řešení není v daném případě vhodné, lze zadat načítací a ukládací funkci, jak je popsáno níže. Ukládací funkce může být rovněž použita pro kontrolu přípustnosti zadané hodnoty.
Ovládání řádkového editoru je popsáno v samostatné kapitole.

Zobrazení

Položka
Popis
Zarovnání
Zarovnání obsahu editoru, pokud je editor širší, než obsah. Lze zvolit zarovnání doleva, na střed a doprava, nebo ponechat možnost automaticky.
Při automatickém zarovnání se bere zarovnání určené u sloupce tabulky, pokud je editor v tabulce. Pokud takto nelze zarovnání zjistit, určuje se podle typu dat. Číselné typy se zarovnávají doprava, ostatní doleva.
Přesnost čísel
Pokud je editováno reálné číslo, určuje, kolik desetinných míst bude zobrazována. Pro hodnoty typu čas (Time) určuje, zda a s jakou přesností budou zobrazovány sekundy a minuty. V ostatních případech bez významu.
Seskupovat cifry čísla
Pokud je volba označena, budou čísla zobrazována s ciframi oddělenými do skupin po třech. Jako oddělovač se použije symbol zadaný v nastaveních dokumentu, v sekci Symboly.
Spinovací tlačítka
Pokud je volba označena, budou na pravé straně řádkového editoru zobrazena dvě tlačítka, jedno se šipkou nahoru, druhé se šipkou dolů. Pokud je editováno číslo, tlačítka slouží ke zvyšování a snižování hodnoty čísla.
Přepínací výraz
Položka je dostupná, pokud je zvolena možnost Spinovací tlačítka. Zde lze zadat funkci v jazyce Enki, která bude realizovat zvyšování a snižování hodnoty při stisknutí spinovacího tlačítka.
Pokud přepínací výraz není zadán, lze spinovací tlačítka použít pouze na čísla a budou přepínat po kroku 1. Je-li požadovaná jiná funkčnost, je třeba vytvořit tuto funkci.
Parametry funkce:
val
stávající hodnota v editoru. Typ hodnoty je totožný s typem editovaných dat.
increase
hodnota typu Bool. Pokud je TRUE, má se hodnoty zvyšovat, jinak snižovat.
count
počet opakovaných vyvolání spinovací funkce během jednoho stisknutí spinovacího tlačítka. Tuto hodnotu lze využít ke zrychlenému zvyšování/snižování hodnoty při delším podržení spinovacího tlačítka. Standardně zvyšuje/snižuje spinovací tlačítko hodnotu po 1, po dvaceti krocích po 5.
Příklad: máme řádkový editor editující reálné číslo (typ Real) a chceme, aby spinovací tlačítka měnila hodnotu s krokem 0,01, po nějaké době zrychleně s krokem 0,05. Nastavíme přepínací výraz na:
var Real step = if(count<20) 0.01 else 0.05;
if(increase)
val + step
else
val – step
Další
Styl rámečku
Vzhled orámování editoru:
žádný
bez orámování
jednoduchý
jednoduchá čára (většinou černá, barva záleží na nastavení Windows).
hluboký
trojrozměrný rámeček jakoby zapuštěný (běžný vzhled editačního políčka ve Windows).
automatický
orámování se určí podle toho, kde je editor umístěn.
Okraje
Šířka okraje mezi rámečkem a vlastním obsahem editoru. Zadat lze jednotlivě hodnoty pro všechny směry. Pokud není hodnota zadána, určí se automaticky podle umístění editoru.
Pozadí
Barva pozadí. Lze volit mezi bílou a šedou, konkrétní barvy však záleží na nastavení Windows. Lze ponechat automatický výběr, který potom určí šedou pro editory, kde nelze hodnotu měnit a bílou pro běžný případ.

Funkčnost

Položka
Popis
Název dat
Název objektu, ve kterém jsou editovaná data. Lze vybrat jeden z objektů poskytovaný nadřazenými dispely.
Reference dat
Reference na datovou položku v rámci výše identifikovaného objektu.
Identifikovaná data musejí být skalární, jinak editor zobrazí chybu. V principu může řádkový editor editovat i neskalární data, není to však většinou účelné. Navíc hrozí nebezpečí, že textová reprezentace dat bude příliš dlouhá a zobrazení dat zabere neúměrně dlouho dobu. Pokud by bylo třeba editovat neskalární data, je nutné zadat níže popsanou načítací funkci např. na [String]val (tj. na explicitní typová konverze hodnoty na řetězec.)
Další
Datový typ
Datový typ, který má editor ukládat do příslušné datové položky. Většinou není třeba datový typ zadávat, určí se automaticky podle skutečného typu editované datové položky. Pokud je však typ editované datové položky sjednocení (Union), může být potřeba zadat, hodnotu jakého typu má editor ukládat.
Načítací funkce
Funkce použitá pro převedení editovaných dat na řetězec, který má být zobrazen v editoru a editován. Pokud není zadána, použije se pro převod standardní typová konverze.
Funkce se zapisuje v jazyce Enki.
Parametry funkce:
val
hodnota, která má být editována. Její typ odpovídá typu editované datové položky. Pokud data nejsou přítomna, je předána hodnota NONE.
precision
celé číslo – přesnost, s jakou má být číslo editováno. Hodnota je převzata z nastavení popsaného výše. V mnoha případech nemá pro funkci žádný význam a může být ignorována.
Typ výsledku: String nebo Rich_string, podle toho, jak je nastavena níže popsaná položka Neformátovaný text. Pokud má načítací funkce vracet formátovaný řetězec, je nutné položku Neformátovaný text vypnout. V opačném případě bude z výsledného řetězce odstraněno formátování.
Ukládací funkce
Funkce použitá pro převedení editovaného řetězce na hodnotu, která má být uložena do editované datové položky. Pokud není zadána, použije se pro převod standardní typová konverze.
Funkce se zapisuje v jazyce Enki.
Parametry funkce:
val
hodnota typu String nebo Rich_string, podle nastavení níže popsaná položky Neformátovaný text. Obsah řádkového editoru, který má být uložen.
precision
jako u načítací funkce.
Výsledek: hodnota, která má být uložena do datové položky. Pokud se typ výsledku neshoduje s typem datové položky, kam se má uložit, provede se typová konverze. Pokud funkce vrátí konstantu NONE nebo NOT_PRESENT a editovaná datová položka je nepovinná, bude její hodnota odstraněna. Pokud funkce vrátí typ Error, bude zobrazeno chybové hlášení obsažené v chybě a editace nebude ukončena, dokud uživatel chybu neopraví. To lze využít k testu přípustnosti zadané hodnoty.
Příklad: chceme vytvořit editor reálného čísla, jehož hodnota má být v intervalu 0–100. Vytvoříme ukládací funkci v jazyce Enki:
var Real r = [Real]val;
if(r<0)
error("hodnota nesmí být menší než nula");
if(r>100)
error("hodnota nesmí být větší než 100");
return r
Ukládat hodnotu
Určuje, kdy má editor zapisovat editovanou hodnotu do datové položky.
ukončením editace
hodnota se uloží až s ukončením editace.
spinovacím tlačítkem
hodnota se uloží s ukončením editace a při každém stisknutí spinovacího tlačítka.
průběžně
hodnota se ukládá při každé změně. Pokud však při ukládání dojde k chybě (např. k chybě ukládací funkce), hodnota se neuloží a chybové hlášení se nezobrazí. K případnému zobrazení chybového hlášení dojde až při pokusu ukončit editaci.
Neformátovaný text
Pokud je volba označena, edituje se jen prostý řetězec (typ String), u kterého nelze měnit formátování. Není-li volba označena, edituje se formátovaný řetězec (Rich_string). Pokud je volba v neutrálním stavu, určuje se způsob editace podle editovaných dat – jde-li o typ Rich_string, edituje se formátovaný řetězec, pro ostatní typy neformátovaný.
Maximální počet znaků
Udává, kolik nejvýše znaků lze zapsat do editoru.
Ořezávat mezery
Pokud je volba označena, před uložením řetězce nebo jeho předání ukládací funkci jsou odstraněny všechny mezery na počátku a na konci řetězce.
Vyhledávat text k hodnotě
Volba je významná, pouze pokud je řádkový editor bezprostředně obsažen ve sdruženém zobrazení, které má ve svém externím zobrazení (nabídce) výběr hodnoty. Potom, dříve než je provedena standardní konverze zadaného řetězce na hodnotu, je řetězec vyhledán mezi titulky ve výběru hodnoty a tím způsobem je k textu přiřazena hodnota. Jinak řečeno: pokud je u řádkového editoru nabídka pro výběr hodnoty, lze hodnotu nejen vybrat z nabídky, ale rovněž zadat zapsáním názvu hodnoty.
Pokud je volba vybraná, propojení funguje i naopak, že se k hodnotě vyhledává ve výběru hodnoty příslušný titulek, který se zobrazuje místo hodnoty.
Povolit nenalezenou hodnotu
Volba je dostupná pouze, pokud je označená volba Vyhledávat text k hodnotě. Pokud je označena i tato volba, lze zadat i jiné hodnoty, než titulky hodnot z příslušného výběru hodnoty.
Nezavírat přechodné okno
Pokud je editor v okně nabídky nebo jiném přechodném okně a volba je označena, ukončením editace se nezavře okno, jak by se normálně stalo.
Definiční typ: Line_editor_def