ч юммнрюжхъ дюммши днйслемр нохяшбюер оюйер ахакхнревмшу тсмйжхи, онгбнкъчыху онкэгнбюрекч дкъ пюгк)вмшу рхонб реплхмюкнб - норхлюкэмн намнбкърэ щйпюм - нясыеярбкърэ ббнд я реплхмюкю я нпхемрюжхеи мю щйпюм норхлюкэмн оепелеыюрэ сйюгюрекэ нр ндмни рнвйх щйпюмю й дпсцни. бяъ хмтнплюжхъ н бнглнфмняръу х йнлюмдюу йнмйпермнцн р)ою реплхмюкю яняпеднрнвемю б ндмнл тюике х кецйн лндхтхжхпселю. 1. б б е д е м х е хдеъ дюммнцн оюйерю дюрэ опнцпюллхярс бнглнфмнярэ бшонкмърэ ярюмдюпрмшл напюгнл мюханкее наыхи рхо тсмйжхи, гюбхяъыху нр реплхмюкю. оюйер янярнхр хг 3-у вюяреи: - намнбкемхе щйпюмю; - ббнд х намнбкемхе щйпюмю опх ббнде; - норхлхгюжхъ дбхфемхо йспянпю. лнфмн хяонкэгнбюрэ норхлхгюжхч дбхфемхъ йспянпю аег хяонкэгнбюмхъ оепбшу дбсу вюяреи оюйерю. намнбкемхе щйпюмю х ббнд лнфмн нясыеярбкърэ аег хгсвемхъ тсмйжхи норхлхгюжхх дбхфемхъ йспянпю. 1.1. реплхмнкнцхъ б дюммнл днйслемре онддепфхбюеряъ якедсчыюъ реплхмнкнцхъ: нймн (WINDOW) - бмсрпеммее опедярюбкемхе, яндепфюыее напюг вюярх щйпюмю реплхмюкю б нопедекеммши лнлемр бпелемх. щрн "нймн" лнфер нубюршбюрэ беяэ щйпюм хкх вюярэ ецн )бокнрэ дн ндмнцн яхлбнкю); реплхмюк хкх щйпюм реплхмюкю (TERMINAL хкх TERMINAL SCREEN) - рн, врн б мюярнъыее бпелъ онкэгнбюрекэ бхдхр мю щйпюме реплхмюкю. гюлерхл, врн щйпюм (SCREEN) - яоежхюкэмши реплхм; щйпюм(SCREEN) - ондмюанп нйнм, йнрнпше он пюглепюл пюбмш щйпюмс реплхмюкю, р.е. нмх мювхмючряъ б бепумел кебнл сцкс х гюйюмвхбючряъ б мхфмел опюбнл. ндмн хг мху, STDSCR, юбрнлюрхвеяйх наеяоевхбюеряъ дкъ онкэгнбюрекъ. 1.2. хяонкэгнбюмхе оюйерю дкъ рнцн, врнаш хяонкэгнбюрэ ахакхнрейс, менаундхлн ндмни хг оепбшу ярпнй опнцпюллш онкэгнбюрекъ хлерэ ярпнйс #INCLUDE тюик "CURSES.H" яндепфхр пюгкхвмше менаундхлше нопедекемхъ, ю рюйфе бйкчвюер тюик "STDIO.H". /опх йнлонмнбйе онкэгнбюрекэ днкфем сйюгюрэ днонкмхрекэмн ахакхнрейс, яндепфюысч нохяшбюелше тсмйжхх х пюглеыеммсч нашвмн б тюике "C:CSLIB.OBJ". 1.3. намнбкемхе щйпюмю дкъ рнцн, врнаш норхлюкэмн намнбкърэ реплхмюк, опнжедспюл менаундхлн гмюрэ, йюй б мюярнъыее бпелъ бшцкъдхр реплхмюк х йюйхл фекюер ецн бхдерэ онкэгнбюрекэ. дкъ щрнцн нопедекъеряъ рхо дюммшу (ярпсйрспю) рхою WINDOW, йнрнпши нохяшбюеР+напюг нймю дкъ опнжедсп, бйкчвюъ мювюкэмне онкнфемхе мю щйпюме (йннпдхмюрш (Y,X) бепумецн кебнцн сцкю) х ецн пюглеп. бяецдю гюбндхряъ ндмю ярпсйрспю рюйнцн рхою (мюгшбюелюъ CURSCR). нмю яндепфхр хмтнплюжхч н рнл, йюй бшцкъдхр реплхнюк б мюярнъыее бпелъ. бяе дпсцхе ярпсйрспш щрнцн рхою ъбкъчряъ бмсрпеммхл опедярюбкемхел. нмх хяонкэгсеряъ дкъ янгдюмхъ х упюмемхъ онремжхюкэмнцн напюгю щйпюмю реплхмюкю хкх вюярх ецн х ме хлечр опълнцн нрмньемхъ й рнлс, рн деиярбхрекэмн мюундхряъ мю щйпюме. еякх с онкэгнбюрекъ хлееряъ нймн, нохяшбючыее, йюй днкфмю бшцкъдерэ мейнрнпюъ вюярэ реплхмюкю, рн нм лнфер бшгбюрэ тсмйжхч REFRESH() (хкх WREFRESH(), ял. мхфе). REFRESH() декюер реплхмюк б накюярх, онйпшбюелни нймнл, онунфхл мю нймн. нрлерхл, врн хглемемхе нймю ме хглемъер реплхмюк. намнбкемх щйпюмю реплхмюкю опнхгбндхряъ рнкэйн бшгнбнл REFRESH() хкх WREFRESH(). щрн онгбнкъер онкэгнбюрекч онддепфхбюрэ меяйнкЭхн пюгкхвмшу бюпхюмрнб вюярх щйпюмю реплхмюкю. йпнле рнцн, лнфмн хглемърэ нймю б кчанл онпъдйе, ме напюыюъ бмхлюмхъ мю щттейрхбмнярэ бшонкмемхъ хглемемхи. оняке рнцн, йюй онкэгнбюрекэ гюдюяр нйнмвюрекэмши бхд нймю х бшгнбер REFRESH() оюйер пеьхр, йюйни яоняна хглемемхъ норхлюкэмши х бшонкмхр ецн. 1.4. янцкюьемхъ на хлемюу тсмйжхи йюй нрлевемн бшье, тсмйжхх лнцср пюанрюрэ я меяйнкэйхлх нймюлх, дбю хг йнрнпшу гюдючряъ юбрнлюрхвеяйх. щрн: CURSCR -напюг реплхмюкю; онкэгнбюрекэ ме днкфем меоняпедярбеммн напчыюрэяъ й CURSCR. STDSCR - "ярюмдюпрмне нймн" - щйпюм, мю йнрнпнл, йюй опюбхкн бедеряъ нямнбмюъ пюанрю. бяъ пюанрю я нймюлх нясыеярбкъеряъ бшгнбюлх яннрберярбсчыху тсмйжхи, опхвел дкъ пюанрш ян ярюмдюпрмшл щйпюмнлецн. 1.4. янцкюьемхъ на хлемюу тсмйжхи йюй нрлевемн бшье, тсмйжхх лнцср пюанрюрэ я меяйнкэйхлх нймюлх, дбю хг йнрнпшу гюдючряъ юбрнлюрхвеяйх. щрн: CURSCR -напюг реплхмюкю; онкэгнбюрекэ ме днкфем меоняпедярбеммн напчыюренаундхлн хяонкэгнбюрэ тсмйжхч "WADDCH(WIN,C)", мн й STDSCR яхлбнк 'C' лнфмн днаюбхрэ бшгбюб "ADDCH(C)". б наыел яксвюе, еякх тсмйжхх опхлемъчряъ ме дкъ STDSCR, оепее й хлемх тсмйжхх днаюбкъеряъ асйбю 'W' (якебю), х оепбшл оюпюлерпнл щрни тсмйжхх днкфем ашрэ нохяюрекэ нймю. й хлемюл опнжедсп, дкъ йнрнпшу бяецдю менаундхлн ъбмн сйюгшбюрэ нймн, мхйнцдю ме днаюбкъеряъ 'W'. хглемемхе рейсыху йннпдхмюр (Y,X) б нйме наеяоевхбюеряъ тсмйжхълх MOVE() х WMOVE(). ндмюйн вюяршл ъбкъеряъ яксвюи, йнцдю ямювюкю менаундхлн бшонкмхрэ дбхфемхе. ю гюрел япегс фе ббнд хкх бшбнд. онщрнлс, дкъ сднаярбю,!оепед анкэьхмярбнл тсмйжхи, бшонкмъчыху ббнд/бшбнд,лнфер ярюбхряъ опетхйя "MV" х менаундхлше йннпдхмюрш (Y,X) лнцср ашрэ днаюбкемш й юпцслемрюл тсмйжхи: MOVE (Y,X); ADDCH (CH); лнфмн гюлемхрэ мю MVADDCH (Y,X,CH); WMOVE (WIN,Y,X); WADDCH (WIN,CH); лнфмн гюленхрэ мю MVWADDCH (WIN,Y,X,CH); сйюгюрекэ нохяюмхъ нймю (IN) днкфем бяецдю ярнърэ оепед йннпдхмюрюлх (Y,X). " 2. х я о н к э г н б ю м х е о ю й е р ю б щрнл яюгдеке дючряъ пейнлемдюжхх он хяонкэгнбюмхч оюйерю. опедонкюцюеряъ, врн бяе деиярбхъ бшонкмъчряъ я STDSCR, ндмюйн бяе хмярпсйжхх асдср пюанрюрэ я кчашл нймнл опх ъбмнл ецн сйюгюмхх (ял. бшье). 2.1. гюосяй дкъ рнцн, врнаш хяонкэгнбюрэ оюйер щйпюмю, менаундхлн пюяопедекхрэ опнярпюмярбн дкъ CURSCR х STDSCR, врн нясыеярбкъчряъ тсмйжхеи INITSCR(). опх оношрйе пюяопедекемхъ опнярпюмярбю ткъ нйнм оюлърх лнфер меубюрхрэ - б щрнл яксвюе INITSCR() бмгбпюыюер ERR. INITSCR() менаундхлн бшгшбюрэ оепед хяонкэгнфюмхел кчашу тсмйжхи, пюанрючыху я нймюлх. оняке пюяопедекемхъ нйнм онкэгнбюрекэ лнфер хяонкэгнбюрэ ху. дкъ пюгпеьемхъ яйпнкхмцю (ялеыемхъ хмтнплюжхх ббепу опх оепеунНе мю якедсчысч ярпнйс хг онякедмеи) б нйме менаундхлн хяонкэгнбюрэ люйпня SCROLLOK(). мнбше нймю лнцср ашрэ янгдюмш осрел хяонкэгнбюмхъ тсмйжхи NEWWIN() х SUBWIN(). тсмйжхъ DELWIN() смхврнфюер ярюпше нймю. 2.2. бшбнд дносярхл, врн менаундхлн намнбхрэ реплхмюк. дкъ щрнцн мсфмм ямювюкю хглемхрэ нймн, ю онрнл оепемеярх хглемемхъ мю реплхмюк. нямнбмшлх тсмйжхълх, хяонкэгселшлх дкъ хглемемхъ нймю ъбкъчряъ ADDCH() х MOVE(). ADDCH() днаюбкъер яхлбнк б онгхжхч я рейсыхлх йннпдхмюрюл (Y,X), ю опх онлных MOVE) лнфмн хглемхрэ рейсыхе йннпдхмюрш. дкъ бшонкмемхъ щрх( тсмйжхи пюгнл лнфмн хяонкэгнбюрэ"MVADDCH(). дпсцхе тсмйжхх бшбнкю, рюйхе йюй ADDSTR() х QRINTW(), бшгшбючр ADDCH() дкъ днаюбкемхъ яхлбнкнб й нймс. оняке рнцн, йюй нймн хглемемн, менаундхлн бшгбюрэ тсмйжхч REFRESH() дкъ намнбкемхъ реплхмюкю. дкъ норхлхгюжхх хглемемхи REFRESH() явхрюер, врн ме хглемеммше бюлх вйярх нймю ме хглемхкхяэ мю реплхмюке. еякх щрн ме рюй, рн опх онлных тсмйжхх TOUCHWIN() лнфмн гюярюбхрэ REFRESH() намнбхрэ нймн мю реплхмюке. гюлерхл, врн бяе намнбкемхъ RGFRESH() декюер он нрмньемхч й CURSCR. еякх реплхмюк ме яннрберярбсер CURSCR (мюопхлеп мю реплхмюк ашкн меврн бшбедемн ме тсмйжхълх оюйерю хкх опнхгньек юооюпюрмши яани), рн менаундхлн онкмнярэч намнбхрэ реплхмюк, бшонкмхб WREFRESH(CURSCR); 2.3. ббнд нямнбмюъ тсмйжхъ ббндю - +GETCH(), йнрнпюъ ббндхр ндхм яхлбнк я реплхмюкю х, еякх щрн бйкчвемн, бшгшбюер ADDCH() х REFRESH() дкъ нрнапюфемхъ яхлбнкю (яхярелмне щун медносярхлн, р.й. оюйер щйпюмю днкфем бяецдю гмюрэ, врн опнхяундхр мю реплхмюке). ясыеярбсер бнглнфмнярэ ббеярх ярпнйс тсмйжхеи GETSTR)) х нясыеярбхрэ тнплюрмши ббнд опх онлных тсмйжхх SCANW(). 2.4. гюбепьемхе пюанрш б мювюке пюанрш тсмйжхъ INITSCR() опх онлных SETTеRл() нясыеярбкъер сярюмнбйсч менаундхлнцн пефхлю реплхмюкю. дкъ опейпюыемхъ хкх опхнярюмнбйх хяонкэгнбюмхъ опнжедсп оюйерю менаундхлн бшгбюрэ тсмйжхч ENDWIN(), йнрнпюъ бшдюяр гюбепьючыхе онякеднбюрекэмня4х х сярюмнбхр пефхл реплхмюкю, йнрнпши ашк дн бшгнбю INITRCR(). менаундхлн гюлерхрэ, врн нймю он ENDWIN() ме нябнанфдючряъ, х пюанрю я нймюлх лнфер ашрэ бнгнамнбкемю бшгнбюлх SETTERM() х WREFRESH(CURSCR). 3.`н о р х л х г ю ж х ъ д б х ф е м х ъ й с п я н п ю лнфмн хяонкэгнбюрэ тсмйжхч оепелеыемхъ йспянпю дюммнцн оюйерю (MVCUR()) аег тсмйжхи пюанрш я нймюлх. 3.1. хмтнолюжхъ н реплхмюке хмтнплюжхъ н реплхмюке упюмхряъ б мюанпе оеяелеммшу, нопедекеммшу б тюике "CURSES.C". хлемю ху янярнър хг 2 асйб бепумецн пецхярпю х хлечр (б юмцкхияйнл ъгшйе) лмелнмхвеяйне гмювемхе. мюопхлеп, "HO" - ярпнйю, йнрнпюъ оепелеыюер йспянп й хяундмнлс онкнфемхч (HOME). оеьелеммше нохяюмхъ напюгсчр дбю мюанпю: мюанп 0юпюлерпнб х!мюанп йнлюмд. оюпюлерпш хлечр кнцхвеяйхи ("BOOL" ял. мхфе) х нопедекъчр, хлеер дюммши реплхмюк мейнрнпсч юооюпюрмсч бнг/нфмнярэ хкх нянаеммнярэ, хкх мер. оепелеммше мюанпю йнлюмд хлечр рхо "CHAR *" х ъбкочряъ сйюгюрекълх мю ярпнйх, йнрнпше (ярпнйх) яндепфюр сопюбкъчыхе онякеднбюрекэмнярх реплхмюкю, опхбндъыхе й бшонкмехч нопедекеммшу тсмйжхи. мюопхлеп "UP" - сйюгюрекэ мю ярпнйс, опхбндъысч й оепелевемхч йспянпю мю щйпюме реплхмюкю мю ндмс ярпнйс ббепу. еякх с реплхмюкю мер ондундъыеи юооюпюрмни тсмйжхх, рн яннрберярбсчыюъ оепелеммюъ днкфмю хлерэ гювемхе "NULL". б вхякн лохяюрекеи реплхмюкю бундър рюйфе жекше оепелеммше, нопедекъчыхе вхякн ярпнй х йнкнмнй мю реплхмюке. нохяюрекх реплхмюкю х ху гмювемхъ дкъ реплхмюкю 15-хщ-013 опедярюбкемш б опхкнфемхх 1. менаундхлн нрлерхрэ гдеяэ ндмс нянаеммнярэ: еякх с реплхмюкю опх бшбнде онякедмецн яхлбнкю б ярпнйе йспянп оепеундхр б мювюкн якедсчыеи ярпнйх (оюпюлерп AN == TRUE) х оепеунд хг онякедмеи ярпнйх опхбндхр й юооюпюрмнлс яйпнккхмцс (оюпюлерп SD == TRUE), рн онякедми яхлбнк онякедмеи ярпнйх реплхмюкю мю реплхмюк ме бшбндхряъ (ецн бшбнд опхбек аш й ялеыемхч щйпюмю). опх щрнл щрнр яхлбнк гюохяшбюеряъ б нймн ньхайх ме бнгмхйюер. еякх дюммши яхлбнк ялеярхряъ я щрнцн "опнйкърнцн" леярю (мюопхлеп опх яйпнккхмце), рн нм онъбхряъ мю щйпюме реплхмюкю. 3.2. Oорхлхгюжхъ дбхфемхъ йспянпю мю меоняпедярбеммне сопюбкемхе оепелеыемхел йспянпю бшонкмъер тсмйжхъ MVCUR(). еи менаундхлн гюдюрэ хя(ндмне онкнфемхе х леярн мюгмювемхъ. мюопхлеп: MVCUR(0,"0, LINES/2, COLS/2); оепедбхмер сйюгюрекэ я хяундмнцн онкнбемхъ (0,0) б яепедхмс щйпюмю. рейсфее онкнфемхе мехгбеярмн, рн менаундхлн гюдюрэ медносярхлне мювюкэмне онкнфемхе. 4. т с м й ж х х б дюммни цкюбе нохяюмш тсмйжхх х люЙгняш, опеднярюбкъелше оюйернл. опх нохяюмхх люйпняш онлевемш йнлемрюпхел бхдю /* + */. люйпняш х мейнрнпше дпсцхе менаундхлше нопедекемхъ бшонкмемш б тюике "CURSES.H", йнрнпши менаундхлн бйкчвюрэ б опнцпюллш, хяонкэгсчыхе тсмйжхх дчммнцн оюйерю. б тюике "CTRSES.H": - нохяюмш (йюй бмеьмхе) нохяюрекх реплхмюкю (ял. "хмтнплюжхъ н реплхмюке" х опхкнфемхе 1); - нохяюм рхо "WINDOW" (мюахпюеряъ мю бепумел (UPPER) пецхярпе), нохяшбючыхи деяйпхорнп нймю. нопедекемш "OK" (1) х "ERR (0) (мюахпючряъ мю бепумел пецхярпе) - лмелнмхйх дкъ йнднб сдювмнцн х месдювмнцн" гюбепьемхъ тсмйжхи оюйерю. - нохяюмш (йюй "EXTERN WINDOW *") CURSCR х SUDSCR (мюахпючряъ мю мхфмел (LOWER) пецхярпе. - нопедекем кнцхвеяйхи рхо - "BOOL" (йюй "CHAR"), мюахпюеряъ мю мхфмел пецхярпе. опх хяонкэгнбюмхх дюммнцн оюйерю хлемю тсмйжхи лнцср ашрэ мюапюмш мю кчанл пецхярпе, 'imena makrosow - мю мхфмел.. poskolxku obra}enie k opHsatel` okna wsegda proishodit ~erez ukazatelx na nego (хлечыхи нашвмн рхо "WINDOW *"), рн дюкее бшпюфемхе "нймн WIN" асдер нгмювюрэ "нймн, мю нохяюрекэ йнрнпнцн сйюгшбюер WI". опх нохяюмхх тсмйжхи опхбеденш бюпхюмрш дкъ опнхгбнкэмнцн нймю х дкъ STDSCR. бюпхюмрш я "MV" ме опхбедемш, мн нмх лнцср хяонкэгнбюрэяъ дкъ анкэьхмярбю тсмйжхи. бюпхюмрш я "MV" нрясрярбсчр дкъ тсмйжхи, цде нмх ъбмн ме мсфмш (мюЯпхлеп, с NEWWIN()) х рюл,"#цде щрн ъбмн сйюгюмн. нохяюмхх наясфдючряъ рнкэйн бюпхюмрш дкъ STDSCR, ндмюйн бяе яопюбедкхбн х дкъ дпсцху бшпхюмрнб, йнмевмн, я свернл" менаундхлшу дюонкмхрекэмшу юпцслемрнб. 4.1. тсмйжхх бшбндю 4.1.1. ADDCH - днаюбхрэ яхлбнк б нймн CHAR CH: WINDOW *WIN; ADDCH(CH); /* + */ WADDCH(WIN, CH); тсмйжхъ ADDCH() днаюбкъер яхлбнк CH й нймс б рейсысч онгхжхч (Y,X). еякх яхлбнк ъбкъеряъ яхлбнкнл мнбни ярпнйх (\N'), рн ярпнйю асдер нвхыемю"цн йнмжю х рейсыхе йннпдхмюРш )Y,X) асдср хглемемш мю мювюкн якедсчыеи ярпнйх. опх бнгбпюре йюперйх ('\R') йспянп"оепедбхмеряъ мю мювюкн ярпнйх. гмюйх рюаскъжхх ('\T') асдср бшбндхряъ он нрмньемхч й рейсыелс нймс (рюаскъжхъ хлеер дкхмс 8) (ю ме щйпюмс реплхмюкю). рюаскъжхъ бшбндхряъ яннрберярбсчыхл вхякнл опнаекнб, х, еякх нмх ме бяе онлеыючряъ мю рейсыеи ярпнйе, рн нярюбьхеяъ асдср оепемеяемш б мювюкн якедсчыеи (врн, онбхдхлнлс, ме янбяел йнппДйрмн). ADDCH() бнгбпюыюер ERR, еякх оняке бшбндю яхлбнкю йспянп днкфем бширх гю опедекш нймю (бшбнд онякедмецн яхлбнкю б онякедмеи ярпнйе, еякх яйпнккхмц гюопеыем, ял. SCROLLOK()). ньхайю ме бнгмхйюер опх бшбнде рюаскъжхх, опх гюопеыеммнл яйпнккхмце кхьмхе опнаекш бшбндъряъ б мювюкн онякедмеи ярпнйх (щрн рнфе ме йнппейрмн). 4.1.2. ADDSTR - днаюбхрэ ярпнйс б нймн напюыемхе й тсмйжхх: CHAR( *STR; WINDOW *WIN; ADDSTR(STR); /* + */ WADDSTR (VIN, STR); тсмйжхъ ADDSTR() днаюбкъер ярпнйс SрR б нймн, мювхмюъ я рейсыху йннодхмюр (Y,X). ADDSTR() бнгбпюыюер ERR, еякх ярпнйю оношрюеряъ бширх гю цпюмхжш щйпюмю (пл. ADDCH()). 4.1.3. BOX - янгдюрэ пюлйс он цпюмуже нймю напюыемхе й тсмйжхх: CHAR VERT,HOR; /* яхлбнкш дкъ пюлйх */ WINDOW *WIN; BOX (WIN, VERT, HOR); тсмйжхъ BOX() янгдюер пюлйс он цпюмхже (бмсрпх) нймю, хяонкэгсО VERT б +ювеярбе яхлбнкю дкъ янгдюмхъ бепрхйюкэмшу Прнпнм х HOR - дкъ цнпхгнмрюкэмшу. сцкш нярючряъ осяршлх. 4.1.4. CLEAR - нвхярхрэ нймн напюыемхе й тсмйжхх: WINDOW *WIN; CLEAR(); /* + */ WCLEAR(WIN); тсмйжхх CLEAR() нвхыюер нймн х сярюмюбкхбюер дкъ щрнцн нймч ткюц "CLEAR". еякх нймн ъбкъеряъ щйпюмнл, рн опх бшгнбе REFRESH() дкъ рюйнцн нймю я сярюмнбкеммшл ткюцнл "CLEAR" асдер бшонкмемю юооюпюрмюъ нвхярйю щйпюмю. рейсыхе йннпдхмюр9 ([,X) б нйме сярюмюбкхбючряъ б +0,0). 4.1.5. CLEAROK - сопюбкемхе ткюцнл "CLEAR" напюыемхе й тсмйжхх: WINDOW *SCR; BOOL BOLLF; CLEAROK (SCR,BOOLF); /* + */ люйпня CLEAROK() сопюбкъер ткюцнб "CMEAR" дкъ щйпюмю SCR. (еякх нймн щйпюмнл ме ъбкъеряъ, сн тсмйжхъ ялшякю ме хлеер). еякх BOOLF - TRUE, щрн бшгшбюер нвхярйс щйпюмю (юооюпюрмсч) опх якедсчыел бшгнбеб REFRSH(), хкх ее (нвхярйх) ондюбкемхе, еякх BOOLF - FALSE/# б нркхвхх нр CLEAR CLEARoK() ме хглемъер яндепфюмхе щйпюмю. еякх SCR - CURSCR, рн опх бшгнбе REFRESH() опнхгнидер нвхярйю щйпюмю, дюфе еякх нймн, оепедюммне REFRESH ме ъбкъеряъ щйпюмнл. 4.1.6. ERASE - яреперэ нймн аеь!сярюмнбйх ткюцю нвхярйх напюыемхе й тсмйжхх: WINDOW *WIO; ERASE(); /* + */ WERASE(WIN); тсмйжхъ ERASE() ярхпюер нймн, ме сярюмюбкхбюъ ткюц нвхярйх. щрн юмюкнцхвмн CLEAR(), гю хяйкчвемхел рнцн, врн мхйнцдю м% бьОшбюер бшонкмемхъ юооюпюрмни нвхярйх щйпюмю б REFRESH(). тсмйжхъ ERASE() ме хлеер ябъгюммни йнлюмдш я "MV". 4.1.7. CTOBOT - нвхярйю нймю мхре йспянпю напюыемхе й тсмйжхх: WINDOW *WIN; CTOBOT(); /* + */ WCTOBOT(WIN); тсмйжхъ CTOBOT() нвхыюер нймн, мювхмюъ нр рейсыху йннпдхмюр (Y,X) дн йнмжю нймю. йнлюмдю ме хлеер ябъгюммни йнлюмдш я "лV". 4.1.8. CTOEOL - нвхяйю дн йнмжю ярпнйх напюыемхе й тсмйжхх: WINDOW *WIN; CTOEOL(); /* + */ WCTOEOL(WIN); тсмйжхъ CTOEOL() ярхпюер хмтнплюжхч б Мйме, мювхмюъ я рейсыху йннпдхмюр (Y,X) х дн йнмжю ярпнйх. тсмйюхъ ме хлеер ябъгюммни йнлюмдш я "лV". 4.1.9. DELCH - яреперэ яхлбнк напюые.хе и тсмйжхх: WINDOW *WIN; DELCH(); /* + */ WDELCH(WHN); тсмйжхъ DELSH() ярхпюер яхлбнк б рейсыху йннпдхмюрюу (Y,X). йюфдши яхлбнк ярпнйх, ярнъыхи оняке смхврнфеммнцн яхлбнкю, оепелеыюеряъ бкебн х онякедмхи яхлбнк ярпнйх ярюмнрхряъ опнаекнл. рейсыхе йннпдхмюрш ме хглемъчряъ. 4.1.10. DELETELN - яреперэ ярпнйс напюыемхе й тсмйжххz WINDOW *WIN; DELETELN(i; /* + */ WDELETELN (WIN); тсмйжхъ DELETLN() ярхпюер рейсысч ярпнйс. йюфдюъ ярпнйю мхфе рейсыеи оепелеыюеряъ ббепу, онякедмъъ ярпнйю ярюмнбхряъ осярни. рейсыхе йннпдхмюрш мехглемъчряъ. 4.1.11. INSCH - бярюбхрэ яхлбнк напюыемхе й тсмйжхх: CHAR C; WINDOW *WIN; INSCH(C); /* + */ WINSCH (WIN, C); funkciq INSCH() бярюбкъеф#яхлбнк 'C' б рейсыхе йннпДхмюсш (Y, X). йюфдши яхлбнк б ярпнйе оняке бярюбкеммнцн я оепелеыюеряъ бопюбн х онякедмхи яхлбнк ярпнйх хявегюер. 4.1.12. INSERTLN - бярюбхрэ ярпнйс напюыемхе й тсмйжхх: WINDOW *WIN; INSERTLN(); /* + */ WINSERTLN (WIN); тсмйжхъ INSERTLN() бярAбкъер осярсч ярпнйс мюд рейсыеи. рейсыюъ ярпнйю йюфдюъ ярпнйю мхфе рейсыеи ялеыюеряъ бмхг х онякедмъъ ярпнйю хявегюер. рейсыЧъ ярпнйю нвхыюеряъ. рейсыхе йннпдхмюрш (Y,X) ме хглемърПъ. 4.1.13. MOVE - хглемхрэ рейсыхе йннпдхмюрш напюыемхе й тсмйжхх: INT Y,X; WINDOW *WIN; MOVE(Y,X); /* ) */ WMOVE(WIN, Y, X); тсмйжхъ MOVE() лемъер рейсыхе йнядхмюрш б нйме мю (Y,X) . тсмйжхъ бнгбпюыюер ERR, еякх йннпдхмюрш бшундър гю цпюмхжш нймю, опх щрнл рейсыхе йннпдхмюрш мехглемъчряъ. 4.1.14. OVERLAY - мюкнфхрэ ндмн нймн мю дпсцне напюыемхе й тсмйжхх: WINDOW *WIN1, *uIN2; OVER AY(WIN1, WIN2);+ funkciq OVERLAY() опнхгбндхс мюкнфемхе WIN1 мю WIN2 б накюярх, цде нмх янбоюдючрn опнаекш мю WIN1 нярюбкъчрч яндепфхлне WIN2 онд янали мехглеммшл. 4.1.15. OVERWRITE - оепеохяюрэ н$мн!нймн б дпсцне напюыемхе й тсмйжхх: WINDOW *WIN1, *WIN2; OVERWRITE(WIN1, WIN2); тсмйжхъ OVERWRITE() опнхгбндхр гюохяэ WIN1 мю WIN2 б накюярх, цде нмх янбоюдючр. 4.1.16. PRINTW - тнплюрмши бшбнд б нймн напюыемхе й Тсмйжхх: CHAR *FMT; WInFOW *WIN; PRINTW(FMT, ARF1, ARG2,...); WPRINTW(WIN, FMT, ARG1, ARG2,...); тсмйжхъ PRINTW() бшонкмъер тнплюрмне опенапюгнбюмхе мюд ябнхнх юпцслемрюлх х гюохяшбюер ецн пдгскэрюр б нймн, мювхмюъ я рейсыху йннпдхмюр (Y,X). хяонкэгсеряъ ADDSTR() дкъ днаюбкемхъ ярпнйх й нймс. PRINTW() бнгбпюыюер ньхайс (ERR), еякх ADDSTR() бнгбпюыюер ньхайс. 4.1.17. REFRESH - намнбкемхе нймю мю реплхмюке напюСемхе й тсмйжх): WINDOW *WIN; REFRESH(i; /* + */ WREGRESH(WIN); тсмйжхъ REFRESH() намнбкъер сйюгюммне нймн мю щйпюме реплхмюкю, опхбндъ хглапюфемхе нймю б яннрберярбхеч я ецн яндепфхлшл. явхрюеряъ, врн хгнапюфемхе нймю мю реплхмюке ме хяонпвемн ян бпелемх онякедмецн бшгнбю REFRESH(), р.е. ме бшонкмъкняэ нрнапюфемхе йюйнцн-кхан нймю, оепейпшбючыецн дюммне нймн. дкъ оепебшбндю бяецн нймю менаундхлн оепед REFRESH() бшгбюрэ TOUCHWIN() дкъ дюмнкцн нймю. 4.1.18. STCnDOUT - оепеунд б юкэрепмюрубмши пефхл нрнапюфемхъ напюыемхе й тсмйжхх: WINDOW *WIN{ STANDOUT(); /* + */ * WSTANDMUT(WIN); STANDEND(); /* + *- WSTANDEND(WIN); тсмйжхъ STANDOUT() бйкчвюер юк8реп.юрхфмши пефхл нрнапюфемхъ яхлбнкнб, гюохяшбюелшу б нймн (мюопхлеп ондвепйхбюмхе хкх пефхл псяяйху асйб, б гюбхяхлнярх нр юооюпюрмшу бнглнфмняреи реплхмюкю). тсмйжхъ STANDEND() бшйкчвюер юкэрепмюрхбмши пефхл нрнапюфемхъ дкъ бмнбэ днаюбкъелШу яхлбнкнб. 4.2. тснйжхх ббндю 4.2.1 ЕЖХН, МНЕЖУН - сопюбкемхе щуннрнапюфемхел напюыемхе й тсмйжхх: ECHO(); /* + */ NOECHO(); /* + */ тсмйжхъ ECHO() пюгпеьюер щуннрнапюфемхе ббндхлшу яхлбнкнб б нйме, тснйжхъ NOECHO() - гюопеыюер. 5.2.2. GETCH - ббеярх яхлбнк я реплхмюкю напюыемхе й тсмйжхх: WINDOW *WIN; GETCH(); /* + */ WGETCH (WIN); тсмйжхъ GETCH() ббндхр ндхм яхлбнк я реплхмюкю, х, еякх мднаундхлн бшонкмъер ецн щуннрнапюфемхе. GETCH(i бнгбпюыюер ErR, еякх оняке ббндю рейсыхе йннпдхмюрш бшмсфдемш бширх гючопедекш нймю, б опнрхбмнл яксщюе бнгбпюыюер ббедеммши яхлбнкЛ. 4.2.3. ЦЕРЯРП - ббеярх ярпнйс я реплхмюкю н"пюыемхе й тсмйжхх: WINDOW *WIN; CHAR *STR; GETSTR(STR); /* + */ WGETSTR(WIN, STR); тсмйжхъ GETSTR() ббндхр (хяонкэгсъ GETCH()) яхлбнкш х онлеыюер ху б ярпнйс STR онйю ме бярперхр '\N', хкх онйю ме опнхгнидер нь)айж б GETCH(). '\N' б йнмже яфпнйх сдюкъеряъ, ярпнйю Гюбепьюеряъ яхлбнкнл '\0'. GETSTR() бнгбпюыюер ERR, еякх GETCH() бнгбпюыюер ERR. б щрнл яксвюе STR яндепфхр яхлбнкш , ббедеммше дн онъбкемхъ ньхайх х гюбепьеммше яхлбнкн- '0'/ опх мнплюкэмнл гюбепьемхх GETSTR() бнгбпюыюер OK. 4.2.4. SCANW - тнплюрмши ббнд напюыемхе й тсмйжхх: CHAR *FMT; WINDOW *WIN; SCANW(FMT, ARG1, ARG2,...); WSCANW(WIN, FMT, ARG1, ARG2,...); тсмйжхъ SCANW() нясыеярбмяер тнплюрмши ббнд (ял. SCANf+)) я реплхмюкю, ббндъ яхлбнкш он GETCH(). бнгбпюыюер ERR, еякх GETCH() бнгбпюыюер еRR. менаундхлн гюлерйрэ, врн, оняйнкэйс ERR нопедемемн йюй 0, рн бнглнфмю мендмнгмювмнярэ лефдс гмювемхел ERR, х!мскебшл гмювемхел, бнгбпюыюелшл SCANF(). 4.3. пюгкхвмше тсмйжхх 4.3.1. DELWIN - смхврнфхрэ нймн напюыемхе й тсмйжхх: WINDOW *WIN; DELWIN(WIN); тсмйжхъ DELWIN() смхврнфюер нйЦн, нябнанфд!ъ гюмърсч хл ожлърэ. еякх дюммне нймн Хлеес онднймю (SUBWIN), рн онякедмхе ме смхврнфючряъ, мн хмтнплюжхъ б мху мюпсьюеряъ, онщрнлс нмх рюйфе днкфмш ашрэ смйврнфемш. 4.3.2. ENDWIN - опейпюрхрэ пюанрс я нй.юлх мапюыемхе й тсмйжхх: ENDWIN(); тсмйжхъ ENDWIN() опейпюыюер (опхнярюмюбкхбюер) пюанрс я нймюлх: нвхыюер щйпюм реплхмюкю х оепебндхр реплхмюк б пефхл, йнрнпши нм хлек дн бшонкмемхъ INITSCR(). пюанрс я нймюлх лнфмн б/гнамнбйфэ бшгнбнлюлх SETTERM() дмя сярюмнбйх менаундхлнцн Пефхлю реплхмюкю х WREFRESH(CURSCR)) дкъ бнняюмнбкемхъ хмтнплюжхх мю щйпюме. 4.3.3. GETYX - онксвхрэ рейсыхе"йннпдхмюрш напюыемхе й тсмйжхх: WINDOW *WIN; INT Y, X: GETYX(WIN, Y, X); /* + */ люйпня GETYX() онлеыюер рейсыхе йннпдхмюрш (Y,X) нймю WIN б оепелеыемше Y х X. щрн бнглнфмн аег оепедювх юдпеянб оепелеммшу, р.й. GETYX() - люйпня. 4.3.4. INCH - онксвхрэ яхлбнк б рейс═Уу йннпдхмюрюу напюыемхе й тбмйжхх: WINDOW *WIN; INCH(); /* + */ WINCH(WIN); /* + */ люйпня INTC() бнгбпюыюер яхлбнк, мюундъыхияъ б рейсыУу йннпдхмюрюу (Y,X) нймю. Lnikakih izmenenij s oknom ne proishodit. тсмйжхъ ме хлеер ябъгюммни йнлюмдш "MV". 4.3.5. INITSCR - хмхжхюкхгюжхъ напюыемхе й тсмйжхх: INITSCR(); тсмйжхъ INITSCR() бшонкмъер мювюкэмсч хмхжхюкхгюжхч. грс тсмйжхч менаундхлн бшгшбюрэ оеп%д йяонкэгнбюмхел кчашу опнжедсп #оюйерю гю хяйкчвемхел MVCUR(), р.е. гю хяйкчвемхел яксвюъ, йнцдю хяонкэгсеряъ рнкэйн норхлхгюжхъ дбхфемйъ йспяНпю. INITSCR() бшонкмъер сярюмнбйс менаундхлнцн пефхлю реплхмюкю (тсмйжхе* SETTRM()) i sozdaet okna CURSCR х STDSCR, бнгбпюыюъ ERR, еялх меднярюрнвмн ябнандмни оюлърх, х STDSCR опх мнплюкэмнл гюбепьемхх. 4.3.6. LEAVEOK - сопюбкемхел янупюмемхел рейсыху йннпдхмюр напюыемхе й тсмйжхх: WINDOW *WIN; BOOL BOOLF; LEAVEOK(WIN, BOOLF+; /* + */ люйпня LEAVEOK()!сопюбкъер кнцхвеяйхл ткюцнл, нопедекъчыхл онбекемхе йспянпю мю щйпюме оняке бшоннмемхъ ХГлемемхи (тсмйжхеи REFRESJ()). еякх BOOLF == FALSE (ю хлеммн рюй он слнквюмхч), р/ оняке намнбкемхъ нймю тсмйжхеи REFRESH() йспянп бнгбпюыюеряъ б онгхжхч, нопедекъелсч рейсыхлх йннпдхмюрюлх б дюммнл нйме. еякх BOOLF == TRUE, рн онпке бшонкмемхъ хглемемхи йспянп нярюеряъ мю леяре, ю рейсыхе йннпдхмюрш йнппейрхпсчряъ мю#хннпдхмюрш йспянпю, еякх йспяня б опедекюу нймю, хкх сярюмюбкхбючряъ б (0,0) еякх йспянп бме нймю. 4.3.7. MVWIN - оепелеыемхе нймю напюыекхе й тсмйжхх: WINDOW *WIN;M INT Y,X; MVWIN(WIN, Y, X); тсмйжхъ MVWIN() оепелеыюер сйюгюммне нймн, сярюмюбкхбюъ ецн мювюкэмше йннпдхмюрш )йннпдхмюрш кебнцн бепумецн сцкю) б (Y,X). еякх нймн бшидер гю цпюмхжш щйпюмю, оепелеыемхе ме опнхгбндхряъ х MYWIN() бнгбпюыюер ERR. менаундхлн нрлерхрэ, врн оепеле=емх% нЧнм х ху онднйнм (SUBWIN) мегюбхяхлн, онгрнлс дкъ янУпюмемхъ бгюхлмнцн яннрберярбхъ (мю щйпюме) бяе онднймю менаундхлн оепелеыюрэ мю ндхмюйнбнепюяярнъмхе я нямнбмшл нймнл. 4.3.8. NEWWIN - янгдюрэ мнбне нймн напюые.хе + тсмйжхх: INT NEW_LINES, NEW_COLS, BEGIN_Y, BEGIN_X; WINDOW * NEWWIN (NEW_LINES, NEW_COLS, BEGIN_Y, BEGIN_X); тсмйжхъ МЕББХМ() янгдюер мнбне нймн б NEW_LINES ярпнй х NEW_COLS йнкнмнй, я мювюкэмшлх йнДпдхмюрюлх (йннпдхмюрюлх кебнцн бепумецн сцкю) (BEGIN_X, BEGIN_X). еякх вхякн ярпнй (NEW_LINES) хкх (х) вхякн йнкнмнй (NEW_COLS) пюбмн 0, рНпюглепш асдср сярюмнбкемш яннрберярбеммн йюй (LINES-BEGIN_Y) хкх (х) (COLS-BEG N_X), !цде LINES - вхякн ярпнй мю щйпюме реплхмюкю, ю COLS - вхякн йнкнмнй. рюйхл напюгнл, дкъ онксвемхъ мнбнцн нймю пюглепнб LINES*COLS менаундхлм хяонкэгнбюрэ NEWWIN(0,0,0,0). опх мнплюкэмнл гюбепьемхх NEWWIN() бнгбпюыюер сйюгюрекэ нА деяйпхорнп мнбнцн нймю (оюнърэ дкъ мнбнцн нймю нрбндхрПъ дхмюлхвеяйх). 4.3.9. SUBWIN - янгдюрэ онднймн напюыемхе й тсмйжхх: WINDOW *WIL; INT NEW_LINES, NEW_COLS, BEG_Y, BEG_X; WINDOW * SUBWIN(WIN, NEW_LINE,NEW_CO S, EG_X, BEG_X); тсмйжхъ SUBWIN()!янгдюер мнбне нймн б NEW_LINES ярпнй х NEW_COLS йнкнмнй я мювюкнл б (BEG_Y, BEG_X) йюй онднймн нймю WIN. опх щрнл кчаше хглемемхъ, опнхгбедеммше б кчанл хг нйнм б накюярх, онйпшбюелни он$нйнцл, асдер янбепьюряъ мю нанху"нймюу. BEG_Y, BEG_X сйюгшбючряъ он нрмньемхч йн бяелс щйпюмс, ю ме й (0,0) WIN. еякх вхякн ярпнй хкх (х) +вхякн йнкнмнй пюбмн 0, рн пюглеп "он яннрб. йннпдхмюрюл пюглеп асдер сярюмнбкем б (LINES-BEGIO_Y) х (COLS-BEGIN_X). еякх онднймн бшундхр гю опедекш нямнбмнцн нймю, рн онднймн янгдюммн ме асдер х SUBWIN бнгбпюрхр ERR, хмюве сйюгюрекэ мю деяйпхорнп мнбнцн онднймю. еые меяйнкэйн нянаеммняреи пюанрш я онднймюлх: - онеЕймн хяонк8гсе4 ярпнйнбше люяяхбш /ямнбмнцн нймю. - опХ бшънкмемхх хглемемхи б онднйме бшонкмемхе REFRESH() нямнбмнцн нймю (аег опедбюяхрекэмНЕн TOUCHWIN()) ме нрнапюгхр щрх хглемемхъ, х мюнанпнр. - бшонкм%мхе яйп/ккх.цю- бярюбйх х сдюкемхъ ярпнй б нямнбмнл нйме мюпсьюер ецн янцкюянбюммнярэ я онднймюлх. бшонкмемхе щрху ноепюжхи б онднймюу дносярхлн, унръ нмх х бшонкмъчряъ лемее щттейрхбмн, вел дкъ опняршу нйнм. - опх бшонкмемхх VWI()"дкъ янупюмемхъ янцкюянбюммнярх"нямнбмне нймн х бяе ецМ онднймю днкфмш ашрэ оепелеыемш мю ндхмюйнбне пюяярнъмхе. - Nfunkciq DELWIN(), бшонкмеммюъ ДКъ нямнбмнцн нймю ме ме смхврнрюер онднймю, мн пюгпсьюер хмтнплюжхч б мху. нм) дмкфмш ашрэ рнфе смхврнфемш опх онлных DELWIN(). 4.3.10. SCROLLOK - сопюбкемхе бнглнфмнярэч яйпнккхмцю ф нйме напюыемхе й тсмйжхх: WINDOW *WIN; BOOL BOOLF; SCROLLOK (WIN,BOOLF); /* +!/ люйпня SCROLLOK() сопюбкъер ткюцнл, нопедекъчыхК пюгпеьем хкх меT яйпнккхмц б дюммнл нйме. еякх BOOLF == FALSE (рюйне янярнъмхе он слнквюмхч), рн опх оношрйе бшонкмхрэ оепебнд ярпнйх ('\N') мю онякедмеи ярпнйе б /йме лш ънксвхл ньхайс (ERR) (рейсыхе йннпдхмюрш опх щрнл ме хглемъряъ, йнмеж ярпнйх асдер ярепр). рюйфе ERR лш онксвхл опх оношрйе бшбеярх яхлбнк б онякедмеи йнкнмйе онякедмеи ярпнйх нймю (яхлбнк асдер бшбедем, ндмюйн рейсыхе йннпдхмюрш ме хьЕемъряъ). еякх BOOLF == TRUg- рн опх бшбндеч'\N' б оНякеемеи ярпнйе щйпюмю хкх бшбнде яхлбнкю б онякедмеи онгхжхх онякедмеи ярпнйх хтнплюжхъ б нхме оепелеярхряъ мю ндмс ярпнйсчббепу, бепумъъ ярпнйю опноюдер, ю йспянп асдер сярюмнблем б мювюкн онякедмеи, вхярни реоепэ ярпнйх нймю. хлеммн щрн х мюгшбюеряъ "яйпнккхмц". 4.3.11. TOUCHWIN - наеяоевхрэ онкмши оепебшбнд нймю напюыемхе й тсмйжхх: WINDOW *WIN; TOUCHWIN(WIN); тсмйжхъ TOUCHWIN() 5ярюмюбнйбюер яннрберярбсчыхе оепелеммье дкъ сйюгюммнцн нймю рюйхл напюгнл, врн щрн нймн асдер онкмнярэ оепебшбедемн опх бшгнбе REFRESH(). щрн менаунцхлн, мюопхлеп, еякх хгнапюфемйе нймю гюрепрн бшгнбюлх дпсцху нйнм. менаундхлн нрлерхр8, врн!еякх хглемемхъ мю щйпюме ашкх !бшгбюмш ме бшгнбюлх тсмйжхи !дюммнцн оюйерю, рн дкъ бняярюмнбкемхъ хгнапюфемхъ менаундхлн бшонкмхрэ WREFRESH(CURSCR). 4.4. бмсрпеммхе тсмйжхх 4.4.1. MVCUR - бшонкмхрэ оепелеыемхе йспянпю +цапюыемхе + тс.йжхх: INT NcSTY, LASTX, NEWY, NEWX; MVCuR(LASTY, LASTX, NEWY, NEWX); тсмйжхъ MVCUR() оепелеыюер йспянп реплхмюкю я (LAST{, LASTX) б (NEWY, NEWX). лнфмн хяонкэгнбюрэ дюммсч тсмйжхч аег тсмйжхи пюанрш 3 нймюл), ндмюйн опх хяонкэгнбюмхх онякедмху тсмйжхъ MVCUR() ме днкфмю бшгшбюрэяъ онкэгнбюрекел х менаундхлн хяонкэгнбюрэ MOVE() х REFRESH() дкъ оепелеыемуъ йспянпю. еякх тсмйжхх MVCUR() гюдюмн медносярхлне мювюкэмне онкнфемхе, рн нясРеярбкъеряъ юаянкчрмне дбхфемхе б сйюгюммсч рнвйс (я хяоМкэгнбюмхел опълни юдпеяюжхх, еякх ее мер - вепег мювюкн щЙОюмю). еякх гюдюмн меднпсярхлне рпеаселне онкнфемхе, рн онкнфемхе он йннпдхмюре (йннпдхмюрюл) я медносярхлшл гмювемхел ме лемъеряъ. 4.4.2. SCROLL - бшонкмемхе яйпнккхмцю б нйме напюыемхе й тсмйжхх: WINDOW *WIN; SCROLL(WIN); тсмйжхъ SCROLL() бшонкмъер яйпнккхмц б сйюгюммнл нйме - ялеыемхе хмЕнплюжхх ббепу мю ндмс онгхжхч,!опх щрнл бепумъъ ярпнйю опноюд!ер, мхфмъъ ярюмнбхряъ осярни. дкъ намнбкемхъ реплхмюкю оняке хяонкэгнбюмхъ SCRMLL() менаундхлн бшгшбюрэ REFRESH(). еякх нймн ъбкъеряъ щйпюмнл, рн тсмйжх1 CROLL бшонкмхр юооюпюрмши SCROLL, еякх, йнмевмн, рюйюъ бнглнфмнярэ опхясрярбсер б дюммнл реплхмюке. 4.4.3. SETTERM - сярюмнбйю пефхлч реплхмюкю напюыемхе й тсмйжхх: SETTERM(); тсмйжхъ SETTERM() сярюмюбкхбюе4 пе6хл!беплхмюкю, менаундхлши дкъ пюжнрш тсмйжхи оюйерю (яоежпебхл+. пюанрюер х б пютня/TS. бшгшбюеряъ б INITSCR(). опхкнфемхе 1. нохяюм)е ябния4б р%плхмюкнб бяе нохяюмхъ ябниярб!реплхмюкю яняпеднрнвемш б тюике!"CURSES.C". опх нохяемхх оепелеммшу опхбедемш дкъ опхлепю ху гмювемхъ дкъ дхяокеъ 15-хщ-013. INT LINES = 24, /* вхякн ярпнй мю реплхмюке */ COLS = 80; /* вхякн йнкнмнй"дю реплхмюке */ BOOL /* кнцхвеяйхе, б дюммни пеюкхгюжух cHAR */ AM = 0, /* юбрнлюрхвеяйх сярюмюбкхбюелше онкъ ????*/ AN = 1, /* опх бшбнде оняКддмецн яхлбнкю б ярпнйе дхяокеи бшонкмъер юбрнлюрхвеяйхи оепеунд мю мнбсч ярпн+с. ! еякх AL == 1, ю SD == 0, рн явхрюеряъ, врн я йнмжю онякедмеи ярпнйх йспянп оепеидер б мювюкн оепбни */ BS = 1, /* мюкхвхе бнглнфмнярх бнгбпюрю мю яхлбнк */ CA = 1, /* юдпеяселши йспянп */ GT = 1, /* опхясрярбсер мегюрхпючыАъ рюаскъжхъ */ HL = 0, /* 1"- реплхмюк сдепфхбюер йспяМп б йнмже ярпнйх (ю ме опносяйюер ецн гю онке щйпюмю (рюй лнфер ашрэ, еякх пюглеп щИпюмю сярюмнбкем лемэье"тюйрхвеяйнцн пюглепю щйпюмю реплхмюкю. )леер гм!вем)е смкэйн еякх AL == 0 */ MS = 1, /* лнфмн бшонкмърэ кчаше деиярбхъ б пефхле STANDOUT */ NC = 0, /* ме бшонкмъеряъ вхярши бнгбпюр йюперйх ('\R'), реплхмюк бшонкмъер рнкэйн "\R\N" */ NONL = 0, /* реплхмюк ме лнбер бшо. '\N' аег '\ Da terminale */ BOOL /* кнцхвеяйхе, б дюммни пеюкхгюжУх CHAR */ AM = 0, /* юбрнлюрхвеяйх сярюмюбкхбюелше онкъ ????*/ AN = 1, /* опх бшбнде оняКДдмецн яхлбнкю б ярпнйе дхяокеи бшонкмъер юбрнлюрхвеяйхи оепеунд мю мнбсч ярпнйс. ! еякх AL == 1, ю SD == 0, сн явхрюеряъ, врн я йнмжю!оняледмеи ярпнйх йспянп оепеидер б мювюкн оепбни */ BS = 1, /* мюкхвхе бнглнфмнярх бнгбпюрю мю яхлбнк */ CA = 1, /* юдпеяселши йспянп */ GT = 1, /* опхясрярбсер мегюрхпюч═Аъ рюаскъжхъ */ HL = 0, /* 3"- реплхмюк сдепфхбюер йспяМп б йнмже ярпнйх (ю ме опносяйюер ецн гю онке щйпюмю (рюй лнфер ашрэ, еякх пюглеп щИпюмю сярюмнбкем лемэье"тюйрхвеяйнцн пюглепю щйпюмю реплхмюкю. хлеер гм!вем)е снкэйн еякх AL == 0 */ MS = 1- /* лнфмн бшонкмърэ кчаше деиясбхъ б пефхле STANDOUT */ NC = 0, /* ме бшонкмъеряъ вхярши бнгбпюр йюперйх ('\R'), реплхмюк бшонкмъер рнкэйн "\R\N" */ NONL = 0, /* реплхмюк ме лнбер бшо. '\N' аег '\R$ */ SD = 1; /* бнглнфмнярэ"юооюпюрмнцн SCROLL бшонкмемхел '\N' б онякедмеи ярпнйе */ CHAR *BC = NULL, /*`напюрмне дбхфемхе йспянпю, еяку ме '\B' */ *BT = NULL, /* нчпюрмюъ мегюрхпючыюъ рюаскъжхх */ *CE = "\033K", /* нвхяр+ю дн йнмжю ярпнйх */ *CL = "\033H]033\J", /* нвхярйю щйпюмю */ *CM!= "\033Y ",/* опълне онгхжхнмхп. йспянпю, ял. TGOTO */ *HO = "\033H", /* йспянп б хяундмне */ *LL = NULL, /* оепеунд мю онякедмчч ярнпйс, йнк. 0 */ *ND = "\033C", /* ме яРхпючыее дбхфемхе мю яхлбнк боепед */ *SE = "\017", /* бшУнд хг пефхлю STANDOUT мю реплхмюке */ *SO = "\016", /* сярюмнбйю STANDOUT мю реплхмюке */ TA = NULL, /* гмюй меярхпючыеи рюаскъжхх (еякх ме '\T') */ *TE = NULL, /* юдпея реплхмюкю, пюгакнйхпсчыхи гюйюмвхбючысч онякеднбюрекэмнярэ ??? */ *TI = NULL, /* юдпея реплхмюкю, пюгакнйхпсчыхи хмхжхюкхгюжхч ???*/ *UC = NULL, /* ондвепйхбюмхе дкъ ндмнцн яхлбнкю */ *UE = NULL, /* бьжкчвемхе ондве2йхбюмхъ */ *UP"? "\033A", /* мю ярпнйс ббепу +/ +US = NULL, /* бйкчвемхе ондвепйхбюмхъ */ *VE = "\033H\033\J", /* бхгсюкэмюъ гюйюмвхбючыюъ онякеднбюрекэмнярэ */ jVS = "\027\03sH\033\J"; /* бхгсюкэмюъ мювюкэмю1 он3кеенбюрекэмнярэ */ еякх б реплхмюке опхясрярбсер опълюъ !юдпеяюжхъ йспянпю, дн днкфмю ашрэ мюохяюмю тсмйжхъ TGOTO, тнплхпсчыюъ он онякеднбюрекэмнярх сопюбкемхъ меоняпедярбеммни юдпеяяюжхх ("CM") ярпнйс, опхбндъысч й 7шонлмемхч оепеундю б сйюгюммсч б "юпцслемрюу онгхжхч. мюопхЛеп- екъ 15-хщ-013 щрю тсмйжхъ бшцкъдхр рюй: CHAR * TGOTO(P, COL, LIN) REGISTEs CHAR P; [ P[2] = ' '+LIN; P[3] =`' '+COL; RETURN(P); ] еякх опълни юдпеяюжхх б ре2лхнчке мер, рн тсмйжхъ TGOTO() днкфмю бнгбпюыюрэ ярпнвйс "OUT" (мю бепумел пецхярпе): TGOTO() [ RETURN("OUT"); ] опхкнфемхе 2. ярпсйрспю нохяюрекъ нймю/ нохяюрекэ нймю хлеер рхо /БХМДНБ, йнрнпши нопедекем б тюйке CURSES.H якедсчыхл напюгнл: #DEFINE WINDOW STRUCT _WIN_ST STRUCT _WIN_ST [ SHORT _CURY,_CURX; /* рей. йннпдхмюрш б нйме */ SHORT _MAXY,_MAXX; /* MAX. йннпд)мюр9 б!нйме */ SHORT _BEGY,_BEGX;!/* йннпдхмюрш мювюкю нймю */ SHORT _FLAGS; /* ткюцх, ял. мхфе */ BOOL _CLEAR; /* ткюц "нймн вхярн" */ BOOL _LEAVE; /* ткюц януп. рей. йннпд. */ BOOL _SCROLL; /* теюц пюгп. SCROLL */ CHAR "+*_Y; /* люяя. сй. мю!ярпнйх */ SHORT *_FIRSTCH; /* люяяхбш упюмемемхъ хмт.*/ SHORT *_LASTCH; ! /* нчлеярюу хглемемхъ */ \); Лткюцх (ахрш б _FLAGS) нопедекемш рюй: #DEFINE _UBWIN 01 /* нймн ъбк. онднймнл */ #DEFINE _ENDLINE 02!/* posl. йнкнмйю бундхр б нймн */ #DEFINE _FULLWIN 04 /* нймн онйпшбюер беяэ щйпюм */ #DEFINE _SCROLLWIN 010 /* оняк. ярпнйю бундхр б нймн */ #DEFINE _STANDOUT 0200 / б нйме бйк. юкэрепмюрхбмши*/ /* пефхл нрнапюфеМхъ */ _CURY х _CURX - рейсыхе йннпдхмюрш (Y,X) дкъ нймю. мнбши яхлбнк днаюбкъерОъ б щрс рнвйс. дхюоюгнмш рейсыху йннпдхмюр - 0.._MAXY-1 х 0.._MAXX-1 яннрбер3рбе.мн. _MAXY х _MAXX - пюглеп нймю он ярпнйюл х йнкнмйюл яннрберярбеммн. _BEGY х _BEGX - мювюкэмше йннпдхмюрш (Y,X) нймю мю реплхмюке, р.е. юаянкчрмше йннпдхмюрш кебнцн бепумецн сцкю нймю. _CURY х _CURX - щрн нрмняхрекэмше йннЪдхмюрш бмсрпх нймю. _CLEAR"- ткюц "щйпюм вхяр". ял. CMEAROK() _LEAVE - ткюц сопюбкемхъ янупюмемхел рей. йннпдхмюр. ял. LEAVEOK(). _Y - сХюгюрекэ мю люяяхб сйюгюрекеи мю ярпнйх, яндепфюыхе хмтнплюжхч нймю. рюй: _Y[I]!, сйюгюрекэ мю I-сч ярпнйс _Y[I][J] - J-ши яхлбнк H-ни ярпнйх _FLAGS - онке дкъ ндмнахрнбшу ткюцнб, гюдюбюелшу люяйюлх. мюгмювемхе люянй ъямн хг опхбедеммшу йнлемрюпхеб. яндепфюмхе 1. ббедемхе . . . . . . . . . . . . . . . .`. . . . . .. . . . . . . 1 1.1.реплхмнкнцхъ . . . . . . . . . . . . . . .`. . . . . . . . . . . . 1 1.2.ХОонкэгнбюмхе оюйерю . . . . . .`. . . . . . .`. . . . . . . . . . 1 1.3.намнб,емхе щйпюмю . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4.янцкюьемхъ на хлемюу тсмйжхи . . . . . . . . . . . . . . . . . . . 2 2. хяонкэгнбюмхе оюйерю . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.гюосяй . . . . . . . . . . . . . . . . . . . .#. . . . . . . . . . 3 2.2.бшбнд . . . . . . . . . . . . . .!. .#. . . . . . . . . . . . . . 3 2.3.ббнд . . . . . . . . . . . . . . . . . . . . .#. . . . . . . . . . 4 2.4.гюбепьемхе пюанрш . . . . . . . . . . . . . . . . . . . . . . . . 4 3.!норхлхгюжхъ дбхфемхъ йспянпю . . . . . . . . . . . . . . . .!. .!. 5 3.1.хмтнплюжхъ н реплхмюке . . . . . . . . . . . . . . . . . . . . . . 5 3.2.Oорхлхгюжхъ дбхфемхъ йспянпю . . . . . . . . . . . . . . . . . . . 5 4. тсмйжхх . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 t.1.тсмйжхх бшбндю /. . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.ъ.1.ЮДДЖУ - днаюбхрэ яхлбнк б нймК . . . . . . . . . . . . . . .`. . 6 4.1.2.ADDSTR - днаюбхрэ ярпнйс б нймн . . . . . . . .!. . . . . . . . 7 4.1.3.BOX - sozdatx ramku po granice okna . .!. . . . . . . . . . . . 7 4.1.4.CLEAR - нвхярхрэ нймн . . . . . . . . . . . . . . . . . . . . . 7 4.1.5.CLEAROK - сопюбкемхе ткюцнл "CLEAR" . . . . . . . . . . . . . . 8 4.1.6.ERASE - яреперэ нймн аег сярюмнбйх ткюцю нвхярйх Н. . . . . .. .!8 5.1.7.ЖРНАНР - нвхярйю нймю мхфе йспянпю . . . . . . . .`. . . . . . . 8 4.1.8.CTOEOL - Лвхяйю дн йнмжю ярпнйх . . . .`. . . . . . . . . . . . 8 4.1.9.DELCH - ярепе4э яхлбнк . . . . . . . . . . . . . . . . . . . . . 9 4.1.10.DELETELN - яреперэ ярпнйс . . . . . . . . . . . . . . . . . . . 9 4.1.11.INSCH - бярюбхрэ яхлбнк . . . . . . . . . . . . . . . . . . . . 9 4.1.12.INSERTLN - бярюбхрэ ярпнйс . . . . . . . . . . . . . .. . . . 9 4.1.13.MOVE - хглемйрэ рейсыхе йннпдхмюрш . .. .!. .#. . . . . . . .10 4.1.14.OVERLAY - мюкнфхрэ ндмн нймн мю дпсцне . . . . . . . .#. . . 0 4.1.15.OVERWRITE - оепепхяюрэ ндмн нймн б дпсцне . . . . . . . . . . .10 4.1.16.PINT - тнплюрмши бшбнд б нймн . . . . . . . . . . . . . . . .10 4.1.17.REFRESH - намнбкемхе нймю мю реплхмюке . . . . . . . . . . . .11 4.1.18.STANDOUT - оепеумд б юкэрепмюрхбмши пефхл нрнапюфемхъ . . . . .11 4.2.тсмйжхх ббндю . . . . . . . . . . . .. . . . . . . . . . . . . .11 6.2.1.ECHO, NOECHO - сопюбкДмхе щуннрнапюфемхел . . . . . . . . . . .11 4.2.2.GETCH - ббеярх яхлбнк я реплхмюкю .". . . .`. . . . . . . . . .12 4.2.3.GETSTR - ббеярх ярпнйс я реплхмюкю . . . . . . . . . . . . . . .12 4.2.4.SCANW - тнплюрмши ббне . . . . . . . . . . . . . . .!. .!. . . .12 4.3.пюгкхвмше тсмйжхх . . . . . . . . . . . . . . . . . . . . . . . .12 4.3.1.DELWIN - смхврнфхрэ нймн . . . . . . . . . . . . . . . . . . . .13 4.3.2.ENDWIN - опейпюр