umenuchr JEDNOTKA PRO VYTVÁŘENÍ ZNAKOVÝCH UŽIVATELSKÝCH MENU Příručka uživatele a programátora



Podobné dokumenty
umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora

utermchr JEDNOTKA PRO PRÁCI SE ZNAKOVÝM TERMINÁLEM Příručka uživatele a programátora

udspt10r JEDNOTKA IMPLEMENTUJÍCÍ DISPLEJ VZDÁLENÉ VARIANTY TERMINÁLU TERM10 Příručka uživatele a programátora

usimt03r JEDNOTKA PRO SIMULACI VZDÁLENÉ VARIANTY TERMINÁLU TERM03 NA POČÍTAČI PC Příručka uživatele a programátora

usimt03 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM03 NA PC Příručka uživatele a programátora

uterm03r JEDNOTKA IMPLEMETUJÍCÍ VZDÁLENÝ TERMINÁL TERM03 Příručka uživatele a programátora

uioct01 JEDNOTKA PRO MĚŘENÍ FREKVENCE (OTÁČEK) DESKOU IOCT01 Příručka uživatele a programátora

usimt10 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM10 NA PC Příručka uživatele a programátora

PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora

uaterm JEDNOTKA PRO PRÁCI S ABSTRAKTNÍM TERMINÁLEM Příručka uživatele a programátora

usimt01 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM01 NA PC Příručka uživatele a programátora

uioflex JEDNOTKA PRO KONFIGURACI DESKY IOFLEX01 Příručka uživatele a programátora

upct01 SIMULÁTOR TERMINÁLU TERM01 NA POČÍTAČI PC Příručka uživatele a programátora

Bitmaps SPRÁVCE BITMAP A POMOCNÉ FUNKCE PRO PRÁCI S BITMAPAMI. Příručka uživatele a programátora

LZ77 KNIHOVNA PRO KOMPRESI A DEKOMPRESI DAT POMOCÍ ALGORITMU LZ77. Příručka uživatele a programátora

Software pro grafické terminály TERM10 a TERM03

TEDrv OVLADAČE KLÁVESNICE, MYŠI A DISPLEJE EMULÁTORU TERMINÁLU PRO MS WINDOWS. Příručka uživatele a programátora

TKeypad KNIHOVNY DEFINIC KLÁVESNIC PRO TERMINÁLY TOUCH. Příručka uživatele a programátora

uioadda1 JEDNOTKA PRO OVLÁDÁNÍ DESEK IOADDA01, IOADDA02 A IODA01 Příručka uživatele a programátora

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

VY_32_INOVACE_08_2_04_PR

DiskIO JEDNOTKA PRO PRÁCI S RAM, ROM A FLASH DISKY. Příručka uživatele a programátora

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

uflx2pos JEDNOTKA PRO PRÁCI S INKREMENTÁLNÍMI ČIDLY V DESCE IOFLEX02 Příručka uživatele a programátora

Práce s textovými proměnnými v DetStudiu

ucomm JEDNOTKA ZPROSTŘEDKOVÁVAJÍCÍ SLUŽBY BIOSU KITV40 PRO SÉRIOVOU KOMUNIKACI Příručka uživatele a programátora

Programovací jazyk Pascal

Klávesnice je vstupní zařízení určené pro zadávání písmen, znaků, speciálních symbolů a také pro ovládání počítače.

Algoritmizace a programování

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

urtotemp JEDNOTKA PRO PŘEVODY ODPORU ČIDLA NA TEPLOTU Příručka uživatele a programátora

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

NumToStr JEDNOTKA PRO PŘEVODY ČÍSEL, DATUMU A ČASU A JINÝCH DATOVÝCH STRUKTUR NA ŘETĚZCE A ZPĚT. Příručka uživatele a programátora

G240x128 a G128x64 JEDNOTKY IMPLEMENTUJÍCÍ GRAFICKÉ OPERACE VE VIDEOPAMĚTI. Příručka uživatele a programátora

Uživatelský manuál aplikace. Dental MAXweb

Stránky obce Olomučany

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

Implementace LL(1) překladů

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Manuál k ovládání aplikace INFOwin.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Školní kolo soutěže Baltík 2009, kategorie C

Dodatek k uživatelském manuálu Adash 4202 Revize MK

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

FortiaViewer verze 5.0

2 Strukturované datové typy Pole Záznam Množina... 4

Paměť počítače. alg2 1

Návod k obsluze trenažéru

NÁVOD K OVLÁDÁNÍ PÁLÍCÍHO STROJE A ŘÍDÍCÍHO SYSTÉMU RIPAST 401

Ing. Igor Kopetschke TUL, NTI

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Registr 200x. Registr smluv 200x. Příručka uživatele. Stanislav Matz Tel w-stránky:

Otázky neopisuj, piš odpověď!

K 2 - Základy zpracování textu

Nastavení konstant regulátoru PID

Sada 1 - Základy programování

Ignijet_2007 Externí monitor

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

WebmMenu slouží pro editaci a management položek menu. Pro další informace si prosím vyberte jedno z následujících témat:

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

KAPITOLA 8 TABULKOVÝ PROCESOR

Popis funkcí a parametrů programu. Reliance External communicator. Verze 1.5.0

Dopravní značení příručka

Alcohol Meter - uživatelská příručka

JRm verze Aplikace. Instalace. Ovládání

- jak udělat konstantu long int: L long velka = 78L;

Provozní deník v řídicích systémech

Nástroj PanelMaker a PanelSIM

KOMPLEXNÍ VZDĚLÁVÁNÍ KATEDRA STROJNÍ SPŠSE a VOŠ LIBEREC

VISUAL BASIC. Práce se soubory

Algoritmizace a programování

Sada 1 - Základy programování

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Reliance 3 design OBSAH

Popis programu EnicomD

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

MS Word. verze Přehled programů pro úpravu textu

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Příručka uživatele HELPDESK GEOVAP

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

František Hudek. duben ročník

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Více o konstruktorech a destruktorech

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Vizualizace a evidence výroby a prostojů

LibVUtils UTILITY PRO BALÍK KNIHOVEN LIBV. Příručka uživatele a programátora

1. Elektronická hlášení a objednávky

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Vlastnosti dokumentu/stránky

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Návod na použití portálu 802

E+034 = ; = e E+034

Postupy práce se šablonami IS MPP

DATABÁZE MS ACCESS 2010

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Při bodování se mohou přidělovat body za každou dílčí úlohu (tj. a, b ), maximální bodové hodnocení je uvedeno na konci každé dílčí úlohy.

Stručný průvodce aplikací Sběr dat pro RIV

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Transkript:

umenuchr JEDNOTKA PRO VYTVÁŘENÍ ZNAKOVÝCH UŽIVATELSKÝCH MENU Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www: http://www.sofcon.cz Verze dokumentu 1.10

umenuchr Informace v tomto dokumentu byly pečlivě zkontrolovány a SofCon věří, že jsou spolehlivé, přesto SofCon nenese odpovědnost za případné nepřesnosti nebo nesprávnosti zde uvedených informací. SofCon negarantuje bezchybnost tohoto dokumentu ani programového vybavení, které je v tomto dokumentu popsané. Uživatel přebírá informace z tohoto dokumentu a odpovídající programové vybavení ve stavu, jak byly vytvořeny a sám je povinen provést validaci bezchybnosti produktu, který s použitím zde popsaného programového vybavení vytvořil. SofCon si vyhrazuje právo změny obsahu tohoto dokumentu bez předchozího oznámení a nenese žádnou odpovědnost za důsledky, které z toho mohou vyplynout pro uživatele. Datum vydání: 16.05.2003 Datum posledního uložení dokumentu: 16.05.2003 (Datum vydání a posledního uložení dokumentu musí být stejné) Upozornění: V dokumentu použité názvy výrobků, firem apod. mohou být ochrannými známkami nebo registrovanými ochrannými známkami příslušných vlastníků. Copyright 2003, SofCon spol. s r.o., Ondřej Surý

umenuchr Obsah : 1.O dokumentu 5 1.1. Revize dokumentu 5 1.2. Účel dokumentu 5 1.3. Rozsah platnosti 5 1.4. Související dokumenty 5 2.Termíny a definice 5 3.Úvod 6 4.Popis konstant a typů 6 5.Popis objektu tmenuchr 6 5.1. Položky 6 5.2. Metody 7 5.2.1. Init 7 5.2.2. Done 7 5.2.3. InitParam 7 5.2.4. muserfirst 8 5.2.5. mdisplaymenu 8 5.2.6. mnextmenu 8 5.2.7. InVerifyChar 8 5.2.8. NotInVerifyChar 8 5.2.9. EnableKeyDir 8 5.2.10. DisableKeyDir 8 5.2.11. edstr 8 5.2.12. DisplayStr 9 5.2.13. ToFirstChar 9 5.2.14. PrepareEditStr 9 5.2.15. SetEditBinCursor 9 5.2.16. ToEndChar 9 5.3. Metody pro editaci řetězce 9 5.3.1. SetDestString 9 5.3.2. ClearDestString 10 5.3.3. SetInsertMode 10 5.3.4. SetOverMode 10 5.3.5. PlaceXYString 10 5.3.6. PlaceXYByte 10 5.3.7. PlaceXYWord 10 5.3.8. PlaceXYInteger 10 5.3.9. PlaceXYLongInt 10 5.3.10. PlaceXYReal 10 5.3.11. PlaceXYRealExp 11 5.3.12. PlaceXYByteHex 11 5.3.13. PlaceXYWordHex 11 5.3.14. PlaceXYLongIntHex 11 5.3.15. PlaceXYByteBin 11 5.3.16. PlaceXYWordBin 11 5.3.17. PlaceXYLongIntBin 11 5.3.18. PlaceXYSetBin 11 5.3.19. PlacePosString 12 5.3.20. PlacePosXXX 12

umenuchr 5.4. Metody pro editaci 12 5.4.1. EditString 14 5.4.2. EditLetters 14 5.4.3. EditMenu 14 5.4.4. EditByte 14 5.4.5. EditWord 14 5.4.6. EditInteger 14 5.4.7. EditLongint 14 5.4.8. EditReal 15 5.4.9. EditRealExp 15 5.4.10. EditByteHex 15 5.4.11. EditWordHex 15 5.4.12. EditByteBit 15 5.4.13. EditWordBit 15 5.4.14. EditSetBit 16 5.4.15. EditWait 16 5.4.16. EditWaitPress 16 5.4.17. EditPassword 16 5.4.18. EditReturn 16 6.InitRunMenu 17

1. O dokumentu 1.1. Revize dokumentu Verze dokumentu Verze SW Autor Datum vydání 1.00 1.XX Su První vydání Popis změn 1.10 2.XX Tu 16.05.2003 Úprava dokumentu dle ISO9000. Zrušená proměnná tmenuchr.term. Doplněný popis tmenuchr.setupkeychar. Přejmenované funkce InChVerify InVerifyChar a NotInChVerify NotInVerifyChar. Opravené hlavičky funkci EditXXXHex a ExitXXXBin. Doplněný funkce PrepareEditStr, SetEditBinCursor, PlacePosXXX, edxxx. 1.2. Účel dokumentu Tento dokument slouží jako popis knihovny jednotky pro vytváření znakových uživatelských menu umenuchr. 1.3. Rozsah platnosti Určen pro programátory a uživatele programového vybavení SofCon. 1.4. Související dokumenty Pro čtení tohoto dokumentu je potřeba seznámit se s manuálem utermchr, uaterm a uamenu,. Popis formátu verze knihovny a souvisejících funkcí je popsán v manuálu LibVer. 2. Termíny a definice Používané termíny a definice jsou popsány v samostatném dokumentu Termíny a definice. file:umenuchr_v0110 16.05.2003 v1.10 5 / 17

3. Úvod Tato jednotka implementuje rozšíření objektu tamenu pro práci se znakovými menu. Zděděné procedury zde nejsou popsány, jejich popis lze najít v manuálu k jednotce uamenu. Rozšíření spočívá v doplnění funkcí pracujících nad textovým bufferem. Objekt znakového menu tmenuchr pracuje pouze se znakovými řetězci popisujícími obsah obrazovky menu a přiřazení fontu. Tyto řetězce předává objektu terminálu a ten je v procesu obnovy obrazovky předává objektu displeje. Až objekt displeje provádí pomocí grafické knihovny interpretaci těchto definičních řetězců pomocí přednastavených fontů do videostránky displeje a tu přenáší na fyzický displej. Pole fontů musí být uživatelem vytvořeno vně objektu grafického menu i objektu terminálu a ukazatel na ně se předává při inicializaci objektu displeje. 4. Popis konstant a typů cverno = např. $0251; { BCD formát } cver = např. '02.51,07.08.2003'; Číslo verze jednotky v BCD tvaru a v textové podobě včetně datumu změny. pmmenuchr = ^tmmenuchr; tmmenuchr = procedure(p: pmenuchr); tmmenuchr je typ procedura s parametrem ukazatel na objekt tmenuchr. Díky tomuto parametru může procedura přímo přistupovat k metodám a položkám objektu. tmenueditstr = String[100]; tmenueditstr je typ pro řetězec používaný při editaci v objektu tmenuchr. 5. Popis objektu tmenuchr pmenuchr = ^tmenuchr; tmenuchr = object(tamenu); 5.1. Položky MenuEditStr : tmenueditstr; EditString je řetězec používaný pro editaci editačními procedurami, které vyvolává metoda Run. WaitTick : word; WaitTick je interval čekání při testování klávesnice editačními procedurami, které vyvolává metoda Run. KeyDir : boolean; Pokud je proměnná KeyDir rovna true, je možno používat klávesy 8 a 2 jako šipky nahoru a dolů. PlaceString : ^string; PlaceString je ukazatel na řetězec, se kterým pracují metody Place... PlaceStringSize : byte; file:umenuchr_v0110 16.05.2003 v1.10 6 / 17

PlaceStringSize je délka řetězce, se kterým pracují metody Place.... Pokud by byl text zapisovaný metodami delší než hodnota této proměnné, požadovaná operace se neprovede. InsertMode : boolean; Pokud je InsertMode rovno true, je text metodami Place... vkládán, v opačném případě je původní obsah přepsán. SetupKeyChar : Char; V proměnné SetupKeyChar je uložen znak pro vstup do SetUpTerminal. 5.2. Metody 5.2.1. Init constructor Init(Menu:pMenu; EndIndex:word;var DisplayString, HelpString:String; Terminal:pTermChr; ParTerm:tParamStr; WaitMenu:Word); Konstruktor Init provádí základní inicializace proměnných objektu tmenuchr. Menu je ukazatel na pole ukazatelů na definiční procedury typu tmmenuchr. EndIndex je index poslední procedury v poli ukazatelů Menu^. DisplayStr je řetězec, do kterého se bude ukládat text určený k zobrazení na displej. HelpStr je řetězec, do kterého se bude ukládat text určený pro nápovědu k dané menu-obrazovce. Terminal je ukazatel na objekt znakového terminálu. ParTerm je řetězec, který bude předán pro inicializaci znakového terminálu Terminal. WaitTick je počet tiků operačního systému reálného času, na které se pozastavuje editace při čekání na stisk klávesy. 5.2.2. Done destructor Done; Destructor Done uvolňuje paměť alokovanou pro dynamické položky objektu tmenuchr a ruší objekt terminálu. 5.2.3. InitParam procedure InitParam; InitParam vyvolává metodu svého předchůdce (viz dokumentace k jednotce uamenu ), rozšiřuje a modifikuje nastavení proměnných: UserFirst je nastaveno na metodu objektu tmenuchr.muserfirst. DisplayMenu je nastaveno na metodu objektu tmenuchr.mdisplaymenu. UserSecond je nastaveno na proceduru edmenu. NextMenu je nastaveno na metodu objektu tmenuchr.mnextmenu. Do množiny ukončovacích znaků TerminateChar jsou vloženy prvky zup, zdn, zcr, zesc. Do množiny potvrzovacích znaků VerifyChar je vložen prvek zcr. file:umenuchr_v0110 16.05.2003 v1.10 7 / 17

5.2.4. muserfirst procedure muserfirst; Metoda muserfirst přiřazuje množině ukončovacích znaků pro editaci objektu terminálu Term množinu ukončovacích znaků objektu tmenuchr. 5.2.5. mdisplaymenu procedure mdisplaymenu; Metoda mdisplaymenu vypisuje data na displej terminálu Term. Bližší informace viz popis metody WriteS v manuálu k jednotce terminálu. 5.2.6. mnextmenu procedure mnextmenu; Metoda mnextmenu se liší od stejnojmenné metody objektu tamenu pouze implementačně. Pro bližší definici viz manuál k jednotce uamenu. 5.2.7. InVerifyChar function InVerifyChar : Boolean; Metoda InVerifyChar vrací true, je-li přijatý znak prvkem množiny potvrzovacích znaků VerifyChar. 5.2.8. NotInVerifyChar function NotInVerifyChar : Boolean; Metoda NotInVerifyChar navrací true, není-li přijatý znak prvkem množiny potvrzovacích znaků VerifyChar. 5.2.9. EnableKeyDir procedure EnableKeyDir; Metoda EnableKeyDir nastavuje zpracovávání kláves 2, 8 jako šipky. Toto přepnutí je použito u terminálů bez samostatných kurzorových kláves. 5.2.10. DisableKeyDir procedure DisableKeyDir; Metoda DisableKeyDir nastavuje zpracovávání kláves 2, 8 jako čísel. 5.2.11. edstr procedure edstr; Statická metoda edstr provádí editaci řetězce MenuEditStr v předem nastaveném editačním okně. file:umenuchr_v0110 16.05.2003 v1.10 8 / 17

5.2.12. DisplayStr procedure DisplayStr; Metoda DisplayStr zobrazí řetězec MenuEditStr jako při editaci, avšak editaci neprovádí. Testuje pouze příjem znaku F1, a v případě jeho přijetí z klávesnice zobrazí nápovědu k dané menu-obrazovce. 5.2.13. ToFirstChar procedure ToFirstChar(var Stri:string); Metoda ToFirstChar doplní řetězec Stri o sekvenci, která smaže obrazovku, vypíše původní text a posune kursor na první znak, který není mezera. 5.2.14. PrepareEditStr procedure PrepareEditStr(var Stri:String; SkipBlank: Boolean); Metoda PrepareEditStr připraví řetězec pro editaci, tj. doplní ho mezerami na šířku okna. Pokud je nastaven příznak SkipBlank začíná editace na prvním neprázdném řádku. Pokud není příznak SkipBlank nastaven, začíná editace v levém horním rohu okna. 5.2.15. SetEditBinCursor procedure SetEditBinCursor(Position: Byte); Metoda SetEditBinCursor nastaví pozici kurzoru pro editaci proměnné v binární podobě na pozici Position. 5.2.16. ToEndChar procedure ToEndChar(var Stri:string); Statická metoda ToEndChar doplní řetězec Stri o sekvenci, která vypíše původní text a posune kursor za poslední znak řetězce. 5.3. Metody pro editaci řetězce Všechny tyto procedury jsou určeny pro jednodušší práci s textovými řetězci. Řetězec, se kterým budou všechny operace pracovat se nastaví voláním procedury SetDestString. Toto nastavení se zruší zavoláním procedury ClearDestString. Mód vkládání (resp. přepisování) se nastaví voláním procedury SetInsertMode (resp.setovermode). Metody PlaceXY... jsou určeny k vložení (resp. přepsání) nového textu do řetězce původního. První dva parametry jsou vždy X-ová a Y-ová souřadnice místa, kde má být nový text umístěn a další parametry specifikují nový text. Tyto procedury jsou určeny pro práci s řetězci DisplayStr a HelpStr. 5.3.1. SetDestString procedure SetDestString(var S:String; Len:Byte); file:umenuchr_v0110 16.05.2003 v1.10 9 / 17

Tato procedura určuje řetězec, se kterým budou všechny procedury PlaceXY... pracovat. Proměnná Len určuje maximální délku řetězce. Pokud je délka při zápisu delší než Len, daná operace se neprovede. Procedura si zjistí šířku displeje z objektu terminálu, a proto je možné používat Y-ovou souřadnici. 5.3.2. ClearDestString procedure ClearDestString; Tato procedura anuluje parametry určené procedurou SetDestString. 5.3.3. SetInsertMode procedure SetInsertMode; Nastaví mód pro vkládání nového textu do starého. 5.3.4. SetOverMode procedure SetOverMode; Nastaví mód pro přepis starého textu novým. 5.3.5. PlaceXYString procedure PlaceXYString(X,Y:Byte; S:tEditString); Umístí řetězec S na pozici X, Y. 5.3.6. PlaceXYByte procedure PlaceXYByte(X,Y:Byte; B:Byte; Len:Byte); Zkonvertuje byte B na řetězec o délce Len a umístí jej na pozici X, Y. 5.3.7. PlaceXYWord procedure PlaceXYWord(X,Y:Byte; W:Word; Len:Byte); Zkonvertuje word W na řetězec o délce Len a umístí jej na pozici X, Y. 5.3.8. PlaceXYInteger procedure PlaceXYInteger(X,Y:Byte; I:Integer; Len:Byte); Zkonvertuje integer I na řetězec o délce Len a umístí jej na pozici X, Y. 5.3.9. PlaceXYLongInt procedure PlaceXYLongInt(X,Y:Byte; L:LongInt; Len:Byte); Zkonvertuje longint L na řetězec o délce Len a umístí jej na pozici X, Y. 5.3.10. PlaceXYReal procedure PlaceXYReal(X,Y:Byte; R:Real; Len:Byte; Flt:Byte); file:umenuchr_v0110 16.05.2003 v1.10 10 / 17

Zkonvertuje reálné číslo R na řetězec o délce Len a počtu desetinných míst Flt a umístí jej na pozici X, Y. Pokud je Len rovno Flt, bude výsledek v pohyblivé desetinné čárce, v opačném případě bude desetinná čárka pevná. 5.3.11. PlaceXYRealExp procedure PlaceXYRealExp(X,Y:Byte; R:Real; Len:Byte); Zkonvertuje reálné číslo R na řetězec o délce Len v exponenciálním tvaru a umístí jej na pozici X, Y. 5.3.12. PlaceXYByteHex procedure PlaceXYByteHex(X,Y:Byte; B:Byte); Zkonvertuje byte B na řetězec v hexadecimálním zápisu a umístí jej na pozici X, Y. 5.3.13. PlaceXYWordHex procedure PlaceXYWordHex(X,Y:Byte; W:Word); Zkonvertuje word W na řetězec v hexadecimálním zápisu a umístí jej na pozici X,Y. 5.3.14. PlaceXYLongIntHex procedure PlaceXYLongIntHex(X,Y:Byte; L:LongInt); Zkonvertuje longint L na řetězec v hexadecimálním zápisu a umístí jej na pozici X,Y. 5.3.15. PlaceXYByteBin procedure PlaceXYByteBin(X,Y:Byte; B:Byte); Zkonvertuje byte B na řetězec v binárním zápisu a umístí jej na pozici X,Y. 5.3.16. PlaceXYWordBin procedure PlaceXYWordBin(X,Y:Byte; W:Word); Zkonvertuje word W na řetězec v binárním zápisu a umístí jej na pozici X,Y. 5.3.17. PlaceXYLongIntBin procedure PlaceXYLongIntBin(X,Y:Byte; L:LongInt); Zkonvertuje longint L na řetězec v binárním zápisu a umístí jej na pozici X,Y. 5.3.18. PlaceXYSetBin procedure PlaceXYSetBin(X,Y:Byte; S:LongInt; Len:Byte); Zkonvertuje množinu S na řetězec v binárním zápisu s počtem bitů Len a umístí jej na pozici X,Y. file:umenuchr_v0110 16.05.2003 v1.10 11 / 17

5.3.19. PlacePosString procedure PlacePosString(P: Byte; S:tMenuEditStr); Procedura zajistí vložení řetězce S do editačního řetězce PlaceString od pozice P. Pokud je výsledný řetězec delší než maximální povolená délka, je zkrácen původní řetězec PlaceString. Pokud není nastavený příznak InsertMode, řetězec S přepíše část řetězce PlaceString od pozice P. 5.3.20. PlacePosXXX procedure PlacePosByte (P: Byte; B: Byte; Len: Byte); procedure PlacePosWord (P: Byte; W: Word; Len: Byte); procedure PlacePosInteger (P: Byte; I: Integer; Len: Byte); procedure PlacePosLongint (P: Byte; L: Longint; Len: Byte); procedure PlacePosReal (P: Byte; R: Real; Len: Byte; Flt: Byte); procedure PlacePosRealExp (P: Byte; R: Real; Len: Byte); procedure PlacePosByteHex (P: Byte; B: Byte); procedure PlacePosWordHex (P: Byte; W: Word); procedure PlacePosLongintHex(P: Byte; L: Longint); procedure PlacePosByteBin (P: Byte; B: Byte); procedure PlacePosWordBin (P: Byte; W: Word); procedure PlacePosLongIntBin(P: Byte; L: LongInt); procedure PlacePosSetBin (P: Byte; S: Longint; Len: Byte); Tyto procedury používají proceduru PlacePosString. Nejdříve se převede číselná hodnota na řetězec typu tmenueditstr (v závislosti na typu funkce) a pak se získaný řetězec vloží do editačního řetězce PlaceString od pozice P. 5.4. Metody pro editaci Všechny tyto procedury převedou proměnnou, která je dána jako parametr na řetězec. Tento řetězec dají editovat metodě edstr a po úspěšném skončení editace jej zase převedou na původní typ, zkontrolují rozsahy a uloží do proměnné. Pokud došlo k chybě převodu, vezme procedura původní obsah a začne editovat znovu. Metoda edstr umí vypsat po stisku klávesy F1 Nápovědu a to poskytuje i ostatním procedurám. Pokud obdrží ukončovací znak, který není znakem potvrzovacím (tzn. není obsažen v množině VerifyChar), tak se proměnná nepřepisuje, ale pouze se ukončí editace. Pokud je nastaven režim flupdn (režim pro malé terminály s omezenou klávesnicí, viz UtermChr), nastavují tyto procedury zároveň parametr edtype (viz UtermChr) podle typu předávaného řetězce (binární čísla, hexa čísla, celá čísla, text, písmena). Nastavení proměnné edtype je využíváno pro výběr sady povolených znaků při tomto režimu editace, kdy pomocí šipek nahoru/dolů měníme znak na pozici kurzoru za jeho následníka/předchůdce v dané sadě znaků. S výjimkou procedury EditLetters, která je k dispozici pouze pro režim FlUpDn=true, jsou všechny editační procedury použitelné v obou režimech editace. Chování editačních metod se modifikuje proměnnou EditEnter. Je-li EditEnter rovna true, metody pouze vypíší proměnnou pomocí metody DisplayStr do editačního okna v předepsaném formátu. Kursor je potlačen a metoda čeká na vstup znaku z množiny TerminateChr. Během čekání na znak se dynamicky obnovuje výpis proměnné na obrazovce. Tzn. pokud se hodnota proměnné změní, file:umenuchr_v0110 16.05.2003 v1.10 12 / 17

projeví se to na výpisu. Pokud obdrží znak z množiny VerifyChar, objeví se kursor, hodnota proměnné se zmrazí a začne vlastní editace. Pokud jde o jiný znak z TerminateChr, metoda ukončí činnost; novou hodnotu proměnné nenastavuje a ukončovací znak vrátí v proměnné ActChar. Na znak F1 i v tomto čekání vypisuje nápovědu. Po úspěšné editaci zakončené znakem z množiny VerifyChar opět přechází do módu čekání. V tomto módu lze, bez nebezpečí přepsání, prohlížet obsahy proměnných. Je-li EditEnter rovno false, editační metody bez čekání na znak z množiny VerifyChar přejdou rovnou do módu editace a po ukončení editace opouštějí metodu. Toto nastavení je implicitní. Při editaci celočíselných a reálných typů lze pomocí proměnné EditReject0 řídit, zda se budou při hodnotě proměnné rovné 0 předkládat k editaci nuly, nebo prázdný řádek. Ukončovací znaky platné editace jsou v množině VerifyChar. Pozor, tato množina nemusí obsahovat stejné prvky jako množina TerminateChr. Jelikož se editace provádí pomocí editační metody ReadLnH použitého objektu pro práci s terminálem, jsou editační schopnosti plně závislé na této metodě. Obecně lze řící, že se používají editační klávesy šipka nahoru, dolů, doprava, doleva, Home a End. Podle nastavení Insert se pracuje buď v přepisovacím, nebo vkládacím režimu. Pokud je řídicí znak znakem ukončovacím, nemůže pochopitelně fungovat pro řízení kursoru, poněvadž ukončí editaci. Klávesa Del maže znak pod kursorem, klávesa BackSpace maže znak vlevo od kursoru. Pro bližší specifikaci viz manuál k použité jednotce terminálu. Editační procedury nenastavují okno pro editaci proměnné. To musí uživatel v definiční proceduře menu udělat sám. Metodou SetEditWin (viz manuál k jednotce uamenu) nastavíme okno a v něm se objeví editovaná proměnná. Všechny editační procedury nastavují podle výsledku editace proměnnou fleditok. Tím oznamují, že editace byla úspěšně dokončena, nebo byla předčasně ukončena. Editační procedury používají následující funkce, které byly zachovány ve veřejné části jen z důvodu zpětné kompatibility. Zavoláním editační funkce se zpravidla nastaví parametry pro editaci a pomocí funkce SetUserSecond() se nastaví UserSecond na funkci edxxx. procedure edstring procedure edmenu procedure edbytehex procedure edwordhex procedure edlonginthex procedure edbytebin procedure edwordbin procedure edsetbin procedure edwait procedure edwaitpress procedure edpassword procedure edreturn procedure edcislo procedure edbytedec procedure edworddec procedure edinteger procedure edlongint procedure edreal file:umenuchr_v0110 16.05.2003 v1.10 13 / 17

5.4.1. EditString procedure EditString(var S:String) Metoda EditString edituje řetězec S. Metoda umožňuje vkládat do řetězce veškeré znaky Asci, které terminál vygeneruje. V režimu FlUpDn=true se do stringu při výměně znaků po stlačení Up, Dn postupně dosazují veškeré tištitelné znaky, viz utermchr. 5.4.2. EditLetters Procedure EditLetters(var S:String) Metoda EditLetters edituje řetězec S. Metoda se dá použít pouze v režimu FlUpDn=true. Metoda vkládá do řetězce pouze číslice a písmena, viz utermchr. 5.4.3. EditMenu procedure EditMenu Metoda EditMenu pouze testuje klávesnici. Přijme-li znak obsažený v množině ukončovacích znaků, přejde podle něj k další položce menu. Na znak zf1 vypíše Help. EditMenu je implicitní mód činnosti, který nastavuje InitParam. 5.4.4. EditByte procedure EditByte(var B:Byte; LoLim,HiLim:Byte; Width:Byte) Metoda EditByte edituje byte B dekadicky, horní a dolní mez se určuje proměnnými LoLim a HiLim. Celkový počet znaků proměnné se určuje proměnnou Width. 5.4.5. EditWord procedure EditWord(var W:Word; LoLim,HiLim:Word; Width:Byte) Metoda EditWord edituje word W dekadicky, horní a dolní mez se určuje proměnnými LoLim a HiLim. Celkový počet znaků proměnné se určuje proměnnou Width. 5.4.6. EditInteger procedure EditInteger(var I:Integer; LoLim,HiLim:Integer; Width:Byte) Metoda EditInteger edituje integer I dekadicky, horní a dolní mez se určuje proměnnými LoLim a HiLim. Celkový počet znaků proměnné se určuje proměnnou Width. 5.4.7. EditLongint procedure EditLongInt(var L:LongInt; LoLim,HiLim:LongInt; Width:Byte) file:umenuchr_v0110 16.05.2003 v1.10 14 / 17

Metoda EditLongInt edituje longint L dekadicky, horní a dolní mez se určuje proměnnými LoLim a HiLim. Celkový počet znaků proměnné se určuje proměnnou Width. 5.4.8. EditReal procedure EditReal(var R:Real; LoLim,HiLim:Real; Width,Float: Byte) Metoda EditReal edituje real R dekadicky, horní a dolní mez se určuje proměnnými LoLim a HiLim. Celkový počet znaků proměnné se určuje proměnnou Width. Počet znaků proměnné za desetinnou čárkou se určuje proměnnou Float. 5.4.9. EditRealExp procedure EditRealExp(var R:Real; LoLim,HiLim:Real; Width:Byte) Metoda EditRealExp edituje Real R v exponenciálním tvaru, horní a dolní mez se určuje proměnnými LoLim a HiLim. Celkový počet znaků proměnné se určuje proměnnou Width. 5.4.10. EditByteHex procedure EditByteHex(var B:Byte) Metoda EditByteHex edituje byte B hexadecimálně. Horní a dolní meze jsou implicitně nastaveny na maximální rozsah byte. 5.4.11. EditWordHex procedure EditWordHex(var W:Word) Metoda EditWordHex edituje word W hexadecimálně. Horní a dolní meze jsou implicitně nastaveny na maximální rozsah word. 5.4.12. EditByteBit procedure EditByteBit(var B:Byte) Metoda EditByteBit edituje byte B binárně. Znaky jiné než 1 nebo 0 jsou ze zpětné konverze vynechány. To dává možnost oddělovat výpis po čtyřech znacích mezerou. Pokud se zadá znaků 1 a 0 méně než 8, doplní se číslo zleva znaky 0, pokud se zadá znaků více, použije se ke konversi posledních 8 znaků. Pro editaci se nastavuje přepisovací režim a po ní se vrací předchozí režim. Binárně vypisovaný byte se vejde do 9 znaků. Mezi horní a dolní čtveřicí bitů se do výpisu vkládá mezera. Číslo po editaci může mít opět mezi bity vkládané mezery pro lepší oddělení. 5.4.13. EditWordBit procedure EditWordBit(var W:Word; LoLim,HiLim:Word) Metoda EditWordBit edituje word W binárně, horní a dolní mez se určuje proměnnými Lo a Hi. Znaky jiné než 1 nebo 0 jsou ze zpětné konverze vynechány. To dává možnost oddělovat výpis po čtyřech znacích mezerou. Pokud se zadá znaků 1 a 0 méně než 16, doplní se číslo zleva znaky 0, pokud se zadá znaků více, použije se ke konversi posledních 16 znaků. Pro editaci se nastavuje file:umenuchr_v0110 16.05.2003 v1.10 15 / 17

přepisovací režim a po ní se vrací předchozí režim. Binárně vypisovaný word je dlouhý 18 znaků. V jednotlivých bytech se mezi horní a dolní čtveřici bitů vkládá mezera. Předpokládá se, že okno má šířku 9 znaků a je dvouřádkové. 5.4.14. EditSetBit procedure EditSetBit(var S:LongInt; Len:Byte) Metoda EditSetBit edituje množinu S binárně. Mohutnost množiny se zadá proměnnou Len, která může být v rozsahu 1 až 16 včetně. Pokud je mohutnost množiny menší nebo rovna 12, tak se mezi každé čtyři bity od dolních bitů vkládá jedna mezera. Při zpětné konverzi z řetězce se jiné znaky než 0, 1, nebo nepřipouštějí. Mezery se však při zpětné konverzi vynechají. Kontroluje se, zda výsledná mohutnost množiny není větší než Len. 5.4.15. EditWait procedure EditWait(WaitT:LongInt) Metoda EditWait žádné znaky nepřijímá, nic nedělá pouze čeká WaitT milisekund. To umožňuje prostý výpis textu na displej a po uplynutí určené doby přechod do dalšího menu. Přechod do dalšího menu je podmíněn tím, že metoda simuluje zmáčknutí šipky dolů (zdn). Nastavením adresy pro pokračování po přijetí tohoto znaku se určí adresa dalšího menu. 5.4.16. EditWaitPress procedure EditWaitPress(WaitT:LongInt) Metoda EditWaitPress se chová podobně jako EditWait, ale při čekání testuje klávesnici. Přijme-li znak, chová se jako metoda EditMenu. Přijme-li znak, který není z TerminateChr, pouze se obnoví délka čekání. 5.4.17. EditPassword procedure EditPassword(var PW:String) Metoda EditPassword umožňuje neviditelné zadávání řetězce do proměnné PW. Při editaci nevypisuje znaky, ale pouze posouvá kursor. Řetězec převede na velká písmena. Při editaci nepřijímá řídicí znaky. Je-li nastaveno EditEnter na true, vkládání hesla začne až po stisku klávesy Enter. V režimu flupdn lze použít šipky jako heslo. 5.4.18. EditReturn procedure edreturn Metoda edreturn provede rovnou, bez testování klávesnice, nebo čekání, návrat do nadřízeného menu. To může nahradit použití UserThird pro provedení nějaké akce po volbě. Použití je následující: V menu přiřadíme libovolnému ukončovacímu znaku akci icall1 a do tabulky TransTab[iCall1] vložíme číslo menu s procedurou EditReturn. V tomto menu file:umenuchr_v0110 16.05.2003 v1.10 16 / 17

provedeme akci, která odpovídá vybranému znaku a ihned se vracíme do původního menu. 6. InitRunMenu procedure InitRunMenu(Menu:pMenuChr; MName:IdentType; MStack:Word; MSPrio:Integer; MDPrio:Byte; TName:IdentType; TStack:Word; TSPrio:Integer; TDPrio:Byte; MWaitTick,TWaitTick:Word; PUser1,PUser2:tMMenu; var FlEnd:Boolean) Procedura InitRunMenu vytvoří a spustí proces pro probíhání mezi jednotlivými položkami menu. MName, MStack, MSPrio a MDPrio je jméno, velikost zásobníku, statická a dynamická priorita procesu. Předtím je spuštěna uživatelská procedura PUser1, které je předán ukazatel na pole definičních procedur Menu. Poté spustí inicializační proceduru objektu terminálu TermTick a předá ji parametry TName, TStack, TSPrio, TDPrio a TWaitTick. (viz manuál k jednotce terminálu). Hlavní činnost, kterou procedura vykonává, je periodické vyvolávání metody Run, která zajištuje zpracování menu-obrazovek. (viz manuál k jednotce uamenu). V této smyčce je také volána druhá uživatelská procedura PUser2 a procedura Wait, která čeká MWaitTick tiků operačního systému reálného času ReTOS. Tato smyčka je vykonávána do doby, než je boolovská proměnná rovna true. Poté se zruší proces se jménem TName a objekt Menu. file:umenuchr_v0110 16.05.2003 v1.10 17 / 17