{"id":16985830,"url":"https://github.com/as400jplpc/nim_termcurs","last_synced_at":"2026-02-24T09:05:24.330Z","repository":{"id":174038244,"uuid":"258618257","full_name":"AS400JPLPC/nim_termcurs","owner":"AS400JPLPC","description":"api s'inspirant du 5250/3270 utilisant NIM-LANG exploitation du terminal","archived":false,"fork":false,"pushed_at":"2022-04-09T10:08:53.000Z","size":4349,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-02T16:46:09.342Z","etag":null,"topics":["api-terminal","nim","nim-lang","terminal"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AS400JPLPC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-24T20:34:24.000Z","updated_at":"2022-04-23T23:31:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"a2216f78-245c-4354-b770-e480ad8221b0","html_url":"https://github.com/AS400JPLPC/nim_termcurs","commit_stats":null,"previous_names":["as400jplpc/nim_termcurs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AS400JPLPC/nim_termcurs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fnim_termcurs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fnim_termcurs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fnim_termcurs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fnim_termcurs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AS400JPLPC","download_url":"https://codeload.github.com/AS400JPLPC/nim_termcurs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fnim_termcurs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29777637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-terminal","nim","nim-lang","terminal"],"created_at":"2024-10-14T02:44:15.538Z","updated_at":"2026-02-24T09:05:24.292Z","avatar_url":"https://github.com/AS400JPLPC.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nim_Termcurs\n\n*** curse TERMINAL inspired 5250/3270 done only with nim***\n\n**  I am not yet posting designer and source generator.it is not operational but written at the base of termcurs**\u003cbr /\u003e\n\n** In the meantime you can test with the nim_Termvte repository**\u003cbr /\u003e\n\n** require termkey **\n\ndoc : [TERMCURS](http://htmlpreview.github.io/?https://github.com/AS400JPLPC/nim_termcurs/blob/master/htmldocs/termcurs.html)\n\nimg : [EXEMPLE](https://github.com/AS400JPLPC/nim_termcurs/blob/master/TEST.png)\nimg : [SOURCE GENERATED](https://github.com/AS400JPLPC/nim_termcurs/blob/master/source_generated.png)\n\ndoc : [SOURCE](https://github.com/AS400JPLPC/nim_termcurs/blob/master/exemple/termGrid.nim)\n\u003cbr /\u003e\n\u003cbr /\u003e\n**Progress of the designer test**\u003cbr /\u003e\n\u003cbr /\u003e\nimg : [Source-ouput](https://github.com/AS400JPLPC/nim_termcurs/blob/master/Output_Code.png)\n\nimg : [Source-screen](https://github.com/AS400JPLPC/nim_termcurs/blob/master/Output_Screen.png)\n\nimg : [exemple-Combo/Field](https://github.com/AS400JPLPC/nim_termcurs/blob/master/Output_Screen2.png)\n\n\u003cbr /\u003e\n\u003cbr /\u003egit config pull.rebase true\n\n**IMPORT: termkey project**\u003cbr /\u003e\n\n\u003cu\u003eput in function 2020-04-15\u003c/u\u003e\u003cbr /\u003e\n\n* Full Change 2022-04-07\u0026nbsp;\u0026rarr;\u0026nbsp;**change setPageGrid() calcul nbr page   and  isPanelKey test button actif  **\u003cbr /\u003e\n* Full Change 2022-04-07\u0026nbsp;\u0026rarr;\u0026nbsp;**add ioFMT(PANEL;GRIDSFL; select , pos)\n  work resume ioPANEL and ioGRID reserved Crtl UP Down Right Left --\u003e reserved for line progress and line tracking**\u003cbr /\u003e\n* Change 2022-04-09\u0026nbsp;\u0026rarr;\u0026nbsp;**poster(PANEL) (resume printField(PANEL) and display(PANEL)**\u003cbr /\u003e\n* Change 2022-04-09\u0026nbsp;\u0026rarr;\u0026nbsp;**add setIndex(PANEL,pos) pos= num. field**\u003cbr /\u003e\n\n**Thank you**\n\n* [ Date](https://rgxdb.com/r/2V9BOC58)\u003cbr /\u003e\n* [ MAIL](https://stackoverflow.com/questions/201323/how-to-validate-an-email-address-using-a-regular-expression)\u003cbr /\u003e\n* [TELEPHONE](https://regexr.com/3c53v)\u003cbr /\u003e\n* Thank you to everyone who posted on github their knowledge was precious to me\u003cbr /\u003e\n* To IBM education and their gifts of various books\u003cbr /\u003e\n* [NCURSE](https://invisible-island.net/ncurses/announce.html)\u003cbr /\u003e\n* [illwill](https://github.com/johnnovak/illwill)\u003cbr /\u003e\n* [nim-terminaltables](https://github.com/xmonader/nim-terminaltables)\u003cbr /\u003e\n  \u003cbr /\u003e\n\n\u0026rarr;\u0026nbsp; **ioMENU** in / out objects and receives the choice:\u003cbr /\u003e\n\n\n| Func...........                      |\n| -------------------------------------- |\n| Escape = 0                           |\n| Enter = 1..n                         |\n| scrolling with UP..DOWN              |\n| Mouse                                |\n| scrolling done with the wheel        |\n| UP\u0026nbsp; DOWN\u0026nbsp; Left\u0026nbsp; RIGHT |\n| selector mouse                       |\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n →  **ioPANEL**   \u003cbr /\u003e\ndisplays all the field labels as well as the function keys (F1 ..). the unfolding this fact according to the order in which you registered in the seq [Field] and not index on lines / cols\n\u003cbr /\u003e\n\n\n| Func........... | help.                                               |\n| ----------------- | ----------------------------------------------------- |\n| Enter           | \u0026nbsp;\u0026rarr;\u0026nbsp; next field                       |\n| UP              | \u0026nbsp;\u0026rarr;\u0026nbsp; next field                       |\n| DOWN            | \u0026nbsp;\u0026rarr;\u0026nbsp; previous field                   |\n| Escape          | \u0026nbsp;\u0026rarr;\u0026nbsp; return field                     |\n| Other KEY       | \u0026nbsp;\u0026rarr;\u0026nbsp; returns to the calling procedure |\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n→  **ioGRID** Display field type table, with page / line tracking:\u003cbr /\u003e\n\n\n| Func...........                 |\n| --------------------------------- |\n| Escape = 0                      |\n| Enter = return (Key seq[string] |\n| scrolling with UP..DOWN         |\n| PageUP/PageDown                 |\n| selector                        |\n| Mouse on service                |\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u0026nbsp;\n\u0026rarr;\u0026nbsp; **USE**:\u003cbr /\u003e\n\n* windows: PANEL it is its basic vocation as a frame (html)\u003cbr /\u003e\n* texte: LABEL\u003cbr /\u003e\n* buffer: FIELD\u003cbr /\u003e\n* funckey: BUTTON\u003cbr /\u003e\n* funckey: MENU\u003cbr /\u003e\n* funckey: GRID\u003cbr /\u003e\n* Currently does not control panel output overflows\u003cbr /\u003e\n* To use restore you must display a panel in a panel (must be included) same for the Menus\u003cbr /\u003e\n* The framing of the labels or fields are relative to the panel\u003cbr /\u003e\n* in a PANEL the function keys appear automatically and are included in the Buttons\u003cbr /\u003e\n\n\u003cbr /\u003e\n \n→  **ioFIELD**\u003cbr /\u003e\n\u003cbr /\u003e\n\n\n| Func...........     | help.                                                                                        |\n| --------------------- | ---------------------------------------------------------------------------------------------- |\n| Enter               | \u0026nbsp;\u0026rarr;\u0026nbsp; valid, next field                                                         |\n| UP..DOWN            | \u0026nbsp;\u0026rarr;\u0026nbsp; valid, next field                                                         |\n| TAB..STAB           | \u0026nbsp;\u0026rarr;\u0026nbsp; valid, next field                                                         |\n| Insert              | \u0026nbsp;\u0026rarr;\u0026nbsp; insert char field                                                         |\n| Delete              | \u0026nbsp;\u0026rarr;\u0026nbsp; delete char field                                                         |\n| Left..Rigth         | \u0026nbsp;\u0026rarr;\u0026nbsp;                                                                           |\n| Backspace           | \u0026nbsp;\u0026rarr;\u0026nbsp; Delete                                                                    |\n| Home                | \u0026nbsp;\u0026rarr;\u0026nbsp; First field                                                               |\n| End                 | \u0026nbsp;\u0026rarr;\u0026nbsp; Last field                                                                |\n| Ctrl-H              | \u0026nbsp;\u0026rarr;\u0026nbsp; Display a help panel specific to the field                                |\n| Escape              | \u0026nbsp;\u0026rarr;\u0026nbsp; Returns control to ioPanel then redisplays the field without modification |\n| TKEY                | \u0026nbsp;\u0026rarr;\u0026nbsp; Returns control to ioPanel                                                |\n|                     |                                                                                              |\n| Field-Type          |                                                                                              |\n|                     |                                                                                              |\n| TEXT_FREE           | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , FULL                                         |\n| ALPHA               | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isAlpha and \"-\"                              |\n| ALPHA_UPPER         | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isAlpha automatique UPPER and \"-\"            |\n| PASSWORD            | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , hide  alpha + (1) + (3)                      |\n| ALPHA_NUMERIC       | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isAlpha and isNumber(1) and \"-\"              |\n| ALPHA_NUMERIC_UPPER | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isAlpha and isNumber(1) and \"-\"              |\n| TEXT_FULL           | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isAlpha and isNumber(1) and isCarPwd(3)      |\n| DIGIT               | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isNumber(1)                                  |\n| DIGIT_SIGNED        | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , (+-) and isNumber(1)                         |\n| DECIMAL             | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isNumber(1) (.)                              |\n| DECIMAL_SIGNED      | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , (+-) and isNumber(1) (.)                     |\n| DATE_ISO            | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isNumber(1) (-)\u0026nbsp;                        |\n| DATE_US..DATE_FR    | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , isNumber(1) (/)\u0026nbsp;                        |\n| TELEPHONE           | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , International                                |\n| MAIL_ISO            | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: regex , [ABNF] [RFC 2822]                            |\n| YES_NO              | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: (Y-y-N-n) automatique UPPER                          |\n| SWITCH              | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: space bar ON/OFF ◉ ◎                               |\n| FPROC               | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: Call proc           \"queryselector\" Key.PROC         |\n| FCALL               | \u0026nbsp;\u0026rarr;\u0026nbsp; Managed by function: Call programme      \"queryselector\" Key.CALL         |\n\n(1) numeric\u003cbr /\u003e\n\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"0\"\u003cbr /\u003e\n\n(2) password\u003cbr /\u003e\n\"~\",\"!\",\"?\",\"@\",\"#\",\"$\",\"£\",\"€\",\"%\",\"^\",\"\u0026\",\"*\",\"-\",\"+\",\"=\",\"(\",\")\",\"{\",\"}\",\"[\",\"]\",\"\u003c\",\"\u003e\"\u003cbr /\u003e\n\n(3) punct\u003cbr /\u003e\n\".\",\":\",\",\",\"!\",\"?\",\"'\",\"-\",\"(\",\")\",\"\u003c\",\"\u003e\"\u003cbr /\u003e\nnot \";\" reserved csv\u003cbr /\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n**Usage**\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\ndoc : [Source-exemple-GRID.nim](https://github.com/AS400JPLPC/nim_termcurs/blob/master/exemple/termGrid.nim)\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n** Main procedure**\u003cbr /\u003e\n\nproc addRows(this: GRIDSFL; rows: seq[string]) {.....}\n\nproc clearText(pnl: var PANEL) {.....}\n\nclear value ALL FIELD\nproc clsField(pnl: var PANEL; fld: FIELD) {.....}\n\ncls Field from Panel\nproc clsLabel(pnl: var PANEL; lbl: LABEL) {.....}\n\ncls Label from Panel\nproc clsPanel(pnl: var PANEL) {.....}\n\ncls Panel\nproc Cols(pnl: PANEL): Natural {.....}\n\nget cols PANEL\nproc counColumns(this: GRIDSFL): Natural {.....}\n\nproc countRows(this: GRIDSFL): Natural {.....}\n\nproc defBox(name: string; posx: Natural; posy: Natural; lines: Natural;\ncols: Natural; cadre: CADRE; title: string;\nbox_atr: BOXATRB = boxatr; actif: bool = true): BOX {.....}\n\nDefine BOX\nproc defButton(key: TKey; text: string; ctrl: bool = false; actif: bool = true): BUTTON {.\n....}\n\ndefine BUTTON\nproc defCell(text: string; long: Natural; reftyp: REFTYP;\ncell_atr: CELLATRB = cellatr): CELL {.....}\n\nproc defCell(text: string; long: Natural; reftyp: REFTYP;\ncell_ForegroundColor: string): CELL {.....}\n\nproc defDate(name: string; posx: Natural; posy: Natural; reftyp: REFTYP;\ntext: string; empty: bool; errmsg: string; help: string;\nfld_atr: ZONATRB = fldatr; protect_atr: ZONATRB = prtatr;\nactif: bool = true): FIELD {.....}\n\nDefine Field date ISO\nproc defLabel(name: string; posx: Natural; posy: Natural; text: string;\nlbl_atr: ZONATRB = lblatr; actif: bool = true): LABEL {.\n....}\n\nDefine Label\nproc defMail(name: string; posx: Natural; posy: Natural; reftyp: REFTYP;\nwidth: Natural; text: string; empty: bool; errmsg: string;\nhelp: string; fld_atr: ZONATRB = fldatr;\nprotect_atr: ZONATRB = prtatr; actif: bool = true): FIELD {.\n....}\n\nDefine Field Mail\nproc defNumeric(name: string; posx: Natural; posy: Natural; reftyp: REFTYP;\nwidth: Natural; scal: Natural; text: string; empty: bool;\nerrmsg: string; help: string; fld_atr: ZONATRB = fldatr;\nprotect_atr: ZONATRB = prtatr; actif: bool = true): FIELD {.\n....}\n\nDefine Field Numeric\nproc defString(name: string; posx: Natural; posy: Natural; reftyp: REFTYP;\nwidth: Natural; text: string; empty: bool; errmsg: string;\nhelp: string; regex: string = \"\"; fld_atr: ZONATRB = fldatr;\nprotect_atr: ZONATRB = prtatr; actif: bool = true): FIELD {.\n....}\n\nDefine Field String Standard\nproc defStringH(name: string; reftyp: REFTYP; text: string): HIDEN {.....}\n\nHiden field\nproc defSwitch(name: string; posx: Natural; posy: Natural; reftyp: REFTYP;\nswitch: bool; empty: bool; errmsg: string; help: string;\nswt_atr: ZONATRB = swtatr; protect_atr: ZONATRB = prtatr;\nactif: bool = true): FIELD {.....}\n\nDefine Field switch\nproc defSwitchH(name: string; reftyp: REFTYP; switch: bool): HIDEN {.....}\n\nHiden switch\nproc defTelephone(name: string; posx: Natural; posy: Natural; reftyp: REFTYP;\nwidth: Natural; text: string; empty: bool; errmsg: string;\nhelp: string; fld_atr: ZONATRB = fldatr;\nprotect_atr: ZONATRB = prtatr; actif: bool = true): FIELD {.\n....}\n\nDefine Field Telephone\nproc defTitle(name: string; posx: Natural; posy: Natural; text: string;\nttl_atr: ZONATRB = ttlatr; actif: bool = true): LABEL {.\n....}\n\nDefine Title\nproc displayButton(pnl: var PANEL) {.....}\n\ndisplay matrice only BUTTON\nproc displayField(pnl: var PANEL; fld: FIELD) {.....}\n\ndisplay matrice only FIELD\nproc displayLabel(pnl: var PANEL; lbl: LABEL) {.....}\n\ndisplay matrice only LABEL\nproc displayPanel(pnl: PANEL) {.....}\n\ndisplay matrice PANEL\nproc dltField(pnl: PANEL; idx: Natural) {.....}\n\ndelete Field index Field\nproc dltFieldH(hdn: PANEL; idx: Natural) {.....}\n\ndelete Field Hiden from indexField\nproc dltLabel(pnl: PANEL; idx: Natural) {.....}\n\ndelete Label from index\nproc dltRows(this: GRIDSFL; idx: Natural) {.....}\n\nproc dspMenuItem(pnl: PANEL; mnu: MENU; npos: Natural = 0) {.\n....}\n\nproc getcellLen(cell: var CELL): int {.....}\n\nget len from cell\nproc getCtrl(btn: var BUTTON): bool {.....}\n\nproc getEdtcar(pnl: PANEL; index: int): string {.....}\n\nget Edtcar Field Sequence Field\nproc getEmpty(pnl: PANEL; index: int): bool {.....}\n\nget Empty Field Sequence Field\nproc getErrmsg(pnl: PANEL; index: int): string {.....}\n\nget errmsg Field Sequence Field\nproc getHeadersCar(this: GRIDSFL; r: int): string {.....}\n\nproc getHeadersName(this: GRIDSFL; r: int): string {.....}\n\nproc getHeadersPosy(this: GRIDSFL; r: int): int {.....}\n\nproc getHeadersType(this: GRIDSFL; r: int): REFTYP {.....}\n\nproc getHelp(pnl: PANEL; index: int): string {.....}\n\nget help Field Sequence Field\nproc getIndex(pnl: PANEL; name: string): int {.....}\n\nget index Field from name Field\nproc getIndexG(this: GRIDSFL; name: string; idx: Natural = 0): int {.....}\n\nproc getIndexH(hdn: PANEL; name: string): int {.....}\n\nget index Hiden from name\nproc getIndexL(pnl: PANEL; name: string): int {.....}\n\nget index Sequence Label from name\nproc getName(btn: var BUTTON): TKey {.....}\n\nproc getName(pnl: PANEL): string {.....}\n\nget name field from panel this getField\nproc getName(pnl: PANEL; index: int): string {.....}\n\nget name Field Sequence Field\nproc getNameH(hdn: PANEL; index: int): string {.....}\n\nget name Hiden from index\nproc getNameL(pnl: PANEL; index: int): string {.....}\n\nget name label Sequence Field\nproc getNbrcar(pnl: PANEL; name: string): int {.....}\n\nget nbrCar Field from name\nproc getPnlName(pnl: PANEL): string {.....}\n\nget name From Panel\nproc getPnlTitle(pnl: PANEL): string {.....}\n\nget Title From Panel\nproc getPosx(pnl: PANEL; index: int): int {.....}\n\nget Posx Field Sequence Field\nproc getPosxL(pnl: PANEL; index: int): int {.....}\n\nget Posx label Sequence Field\nproc getPosy(pnl: PANEL; index: int): int {.....}\n\nget Posy Field Sequence Field\nproc getPosyL(pnl: PANEL; index: int): int {.....}\n\nget Posy label Sequence Field\nproc getProcess(pnl: PANEL; index: int): string {.....}\n\nget callVoid Field Sequence Field\nproc getProtect(pnl: PANEL; index: int): bool {.....}\n\nget Protect Field Sequence Field\nproc getReftyp(pnl: PANEL; name: string): REFTYP {.....}\n\nget ref.type Field from name\nproc getRefType(pnl: PANEL; index: int): REFTYP {.....}\n\nget Type Field Sequence Field\nproc getrowCar(this: GRIDSFL; r: int): string {.....}\n\nget Car from grid,rows\nproc getrowEmpty(this: GRIDSFL; r: int): bool {.....}\n\nget Empty from grid,rows\nproc getrowErrmsg(this: GRIDSFL; r: int): string {.....}\n\nget errmsg from grid,rows\nproc getrowHelp(this: GRIDSFL; r: int): string {.....}\n\nget help from grid,rows\nproc getrowName(this: GRIDSFL; r: int): string {.....}\n\nget name from grid,rows\nproc getrowPosx(this: GRIDSFL; r: int): int {.....}\n\nget posx from grid,rows\nproc getrowPosy(this: GRIDSFL; r: int): int {.....}\n\nget posy from grid,rows\nproc getrowProcess(this: GRIDSFL; r: int): string {.....}\n\nget Process from grid,rows\nproc getrowScal(this: GRIDSFL; r: int): int {.....}\n\nget scal from grid,rows\nproc getRowsText(this: GRIDSFL; r: int; i: int): string {.....}\n\nget text from grid,rows\nproc getrowText(this: GRIDSFL; r: int): string {.....}\n\nget text from grid,rows\nproc getrowType(this: GRIDSFL; r: int): REFTYP {.....}\n\nget type from grid,rows\nproc getrowWidth(this: GRIDSFL; r: int): int {.....}\n\nget Width from grid,rows\nproc getScal(pnl: PANEL; index: int): int {.....}\n\nget Scal Field Sequence Field\nproc getSwitch(pnl: PANEL; index: int): bool {.....}\n\nget value Field Sequence Field\nproc getSwitch(pnl: PANEL; name: string): bool {.....}\n\nget value switch from name Field\nproc getSwitchH(hdn: PANEL; index: int): bool {.....}\n\nget switch Hiden from index\nproc getSwitchH(hdn: PANEL; name: string): bool {.....}\n\nget switch Hiden from name\nproc getText(btn: var BUTTON): string {.....}\n\nproc getText(pnl: PANEL; index: int): string {.....}\n\nget value Field Sequence Field\nproc getText(pnl: PANEL; name: string): string {.....}\n\nget value Field from name Field\nproc getTextH(hdn: PANEL; index: int): string {.....}\n\nget value Field Hiden from index\nproc getTextH(hdn: PANEL; name: string): string {.....}\n\nget value Field Hiden from name\nproc getTextL(pnl: PANEL; index: int): string {.....}\n\nget value label Sequence Label\nproc getTextL(pnl: PANEL; name: string): string {.....}\n\nget value Label Sequence from name\nproc getWidth(pnl: PANEL; index: int): int {.....}\n\nget width Field Sequence Field\nproc Index(pnl: PANEL): Natural {.....}\n\nindex actived from panel this getField\nproc ioField(pnl: PANEL; fld: var FIELD; fmt: bool = false): (TKey) {.\n....}\n\nproc ioFMT(pnl: var PANEL; grid: var GRIDSFL; select: bool = false;\npos: int = -1): (TKey, seq[string]) {.\n....}\n\nproc ioGrid(this: GRIDSFL; pos: int = -1): (TKey, seq[string]) {.\n....}\n\nproc ioMenu(pnl: PANEL; mnu: MENU; npos: Natural): MENU.selMenu {.\n....}\n\nproc ioPanel(pnl: var PANEL): TKey {.....}\n\nproc isActif(box: var BOX): bool {.....}\n\nproc isActif(btn: var BUTTON): bool {.....}\n\nproc isActif(fld: var FIELD): bool {.....}\n\nproc isActif(lbl: var LABEL): bool {.....}\n\nproc isActif(mnu: var MENU): bool {.....}\n\nproc isActif(pnl: var PANEL): bool {.....}\n\nproc isActif(this: GRIDSFL): bool {.....}\n\nproc isError(fld: var FIELD): bool {.....}\n\nproc isMouse(pnl: var PANEL): bool {.....}\n\nproc isPanelKey(pnl: PANEL; e_key: TKey): bool {.....}\n\nTest if KEYs must be managed by the programmer\nproc isProcess(pnl: PANEL; index: int): bool {.....}\n\ntest process index Field\nproc isProtect(fld: var FIELD): bool {.....}\n\nproc isrowProtect(this: GRIDSFL; r: int): bool {.....}\n\nget isProtect from grid,rows\nproc isrowTitle(this: GRIDSFL; r: int): bool {.....}\n\nget isTitle from grid,rows\nproc isTitle(pnl: PANEL; index: int): bool {.....}\n\ntest Title label Sequence Label\nproc isValide(pnl: var PANEL): bool {.....}\n\nContrôle Format Panel full Field\nproc Lines(pnl: PANEL): Natural {.....}\n\nget lines PANEL\nproc newGrid(name: string; posx: Natural; posy: Natural; pageRows: Natural;\nseparator: GridStyle = sepStyle; grid_atr: GRIDATRB = gridatr;\nactif: bool = true): GRIDSFL {.....}\n\nproc newMenu(name: string; posx: Natural; posy: Natural; mnuvh: MNUVH;\nitem: seq[string]; cadre: CADRE = CADRE.line0;\nmnu_atr: MNUATRB = mnuatr; actif: bool = true): MENU {.....}\n\nproc newPanel(name: string; posx, posy, height, width: Natural;\nbutton: seq[(BUTTON)]; cadre: CADRE = line0; title: string = \"\";\npnl_atr: ZONATRB = pnlatr): PANEL {.....}\n\nDefine PANEL\nproc pageDownGrid(this: GRIDSFL): TKey_Grid {.....}\n\nproc pageUpGrid(this: GRIDSFL): TKey_Grid {.....}\n\nproc printBox(pnl: var PANEL; box: BOX) {.....}\n\nassigne BOX to matrice for display\nproc printButton(pnl: var PANEL; btn_esp: BTNSPACE = btnspc) {.....}\n\nassigne BUTTON matrice for display\nproc printField(pnl: var PANEL; fld: FIELD) {.....}\n\nassigne FIELD to matrice for display\nproc printGridHeader(this: GRIDSFL) {.....}\n\nproc printGridRows(this: GRIDSFL) {.....}\n\nproc printLabel(pnl: var PANEL; lbl: LABEL) {.....}\n\nassigne LABEL to matrice for display\nproc printMenu(pnl: PANEL; mnu: MENU) {.....}\n\nproc printPanel(pnl: var PANEL) {.....}\n\nassigne PANEL and all OBJECT to matrice for display\nproc resetGrid(this: GRIDSFL) {.....}\n\nproc resetMenu(mnu: var MENU) {.....}\n\nclear object MENU\nproc resetPanel(pnl: var PANEL) {.....}\n\nclear object PANEL / box/label/fld/proc\nproc resetRows(this: GRIDSFL) {.....}\n\nproc restorePanel(dst: PANEL; grid: GRIDSFL) {.....}\n\nrestore the base occupied by grid\nproc restorePanel(dst: PANEL; mnu: MENU) {.....}\n\nrestore the base occupied by menu\nproc restorePanel(dst: PANEL; src: var PANEL) {.....}\n\nrestore the base occupied by panel\nproc restorePanel(pnl: PANEL; lines, posy: Natural) {.\n....}\n\nrestore the lines occupied by the error message\nproc setActif(box: var BOX; actif: bool) {.....}\n\nproc setActif(btn: var BUTTON; actif: bool) {.....}\n\nproc setActif(fld: var FIELD; actif: bool) {.....}\n\nproc setActif(lbl: var LABEL; actif: bool) {.....}\n\nproc setActif(mnu: var MENU; actif: bool) {.....}\n\nproc setActif(pnl: var PANEL; actif: bool) {.....}\n\nproc setActif(this: GRIDSFL; actif: bool) {.....}\n\nproc setCellEditCar(cell: var CELL; edtcar: string = \"\") {.....}\n\nproc setColor(fld: var FIELD; fld_atr: ZONATRB) {.....}\n\nset attribut field\nproc setColor(lbl: var LABEL; lbl_atr: ZONATRB) {.....}\n\nset attribut label\nproc setColorProtect(fld: var FIELD; protect_atr: ZONATRB) {.....}\n\nset attribut protect field\nproc setCtrl(btn: var BUTTON; ctrl: bool) {.....}\n\nproc setEdtCar(fld: var FIELD; Car: string) {.....}\n\nproc setEdtcar(pnl: PANEL; index: int; val: string) {.....}\n\nset Edtcar Field Sequence Field\nproc setEmpty(pnl: PANEL; index: int; val: bool) {.....}\n\nset Empty Field Sequence Field\nproc setErrmsg(pnl: PANEL; index: int; val: string) {.....}\n\nset errmsg Field Sequence Field\nproc setError(fld: var FIELD; val: bool) {.....}\n\nproc setHeaders(this: GRIDSFL; headers: seq[CELL]) {.....}\n\nproc setHelp(pnl: PANEL; index: int; val: string) {.....}\n\nset help Field Sequence Field\nproc setLastPage(this: GRIDSFL) {.....}\n\nproc setMouse(pnl: var PANEL; actif: bool) {.....}\n\nproc setName(pnl: PANEL; index: int; val: Natural) {.....}\n\nset posx Field Sequence Field\nproc setName(pnl: PANEL; index: int; val: string) {.....}\n\nset name Field Sequence Field\nproc setPageGrid(this: GRIDSFL) {.....}\n\nproc setPageGrid(this: GRIDSFL; pos: Natural) {.....}\n\nproc setPosy(pnl: PANEL; index: int; val: Natural) {.....}\n\nset posy Field Sequence Field\nproc setProcess(fld: var FIELD; process: string) {.....}\n\nproc setProtect(fld: var FIELD; protect: bool) {.....}\n\nproc setProtect(pnl: PANEL; index: int; val: bool) {.....}\n\nset protect Field Sequence Field\nproc setRegex(pnl: PANEL; index: int; val: string) {.....}\n\nproc setRegex(pnl: PANEL; name: string; val: string) {.....}\n\nproc setScal(pnl: PANEL; index: int; val: Natural) {.....}\n\nset Scal Field Sequence Field\nproc setSwitch(pnl: PANEL; index: int; val: bool) {.....}\n\nset switch Field from index Field\nproc setSwitch(pnl: PANEL; name: string; val: bool): bool {.....}\n\nset switch Field from name Field\nproc setTerminal(termatr: ZONATRB = scratr) {.....}\n\nErase and color and style default\nproc setText(btn: var BUTTON; val: string) {.....}\n\nproc setText(pnl: PANEL; index: int; val: string) {.....}\n\nset value Field from index Field\nproc setText(pnl: PANEL; name: string; val: string) {.....}\n\nset value Field from name Field\nproc setTextL(pnl: PANEL; index: int; val: string) {.....}\n\nset value Label Sequence Label\nproc setTextL(pnl: PANEL; name: string; val: string) {.....}\n\nset value Label Sequence from name\nproc setTitle(pnl: PANEL; index: int; val: bool) {.....}\n\nset value Label Sequence Label\nproc setType(pnl: PANEL; index: int; val: REFTYP) {.....}\n\nset Type Field Sequence Field\nproc setWidth(pnl: PANEL; index: int; val: Natural) {.....}\n\nset width Field Sequence Field\n\u003cbr /\u003e\n\u003cbr /\u003e\n\nMade with Nim. Generated: 2022-04-08 13:10:50 UTC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fas400jplpc%2Fnim_termcurs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fas400jplpc%2Fnim_termcurs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fas400jplpc%2Fnim_termcurs/lists"}