change terminal key > ATTN PROC CALL Keyboard simulation done by the program and not by the keyboard
→ ATTN keyboard simulation →Passes program name to application server → PROC keyboard simulation →Transmits the name of the procedure to be executed in Internal → CALL keyboard simulation →Transmits the name of the procedure to be executed in External exemple: if use import termcurs.nim var callQuery: Table[string, proc(fld : var FIELD)] var combo = new(GRIDSFL) #=================================================== proc callRefTyp(fld : var FIELD) = var g_pos : int = -1 combo = newGRID("COMBO01",2,2,20) var g_type = defCell("Ref.Type",19,ALPHA) setHeaders(combo, @[g_type]) addRows(combo, @["TEXT_FREE"]) addRows(combo, @["ALPHA"]) addRows(combo, @["ALPHA_UPPER"]) addRows(combo, @["ALPHA_NUMERIC"]) addRows(combo, @["ALPHA_NUMERIC_UPPER"]) addRows(combo, @["TEXT_FULL"]) addRows(combo, @["PASSWORD"]) addRows(combo, @["DIGIT"]) addRows(combo, @["DIGIT_SIGNED"]) addRows(combo, @["DECIMAL"]) addRows(combo, @["DECIMAL_SIGNED"]) addRows(combo, @["DATE_ISO"]) addRows(combo, @["DATE_FR"]) addRows(combo, @["DATE_US"]) addRows(combo, @["TELEPHONE"]) addRows(combo, @["MAIL_ISO"]) addRows(combo, @["YES_NO"]) addRows(combo, @["SWITCH"]) addRows(combo, @["FPROC"]) addRows(combo, @["FCALL"]) printGridHeader(combo) case fld.text of "TEXT_FREE" : g_pos = 0 of "ALPHA" : g_pos = 1 of "ALPHA_UPPER" : g_pos = 2 of "ALPHA_NUMERIC" : g_pos = 3 of "ALPHA_NUMERIC_UPPER" : g_pos = 4 of "TEXT_FULL" : g_pos = 5 of "PASSWORD" : g_pos = 6 of "DIGIT" : g_pos = 7 of "DIGIT_SIGNED" : g_pos = 8 of "DECIMAL" : g_pos = 9 of "DECIMAL_SIGNED" : g_pos = 10 of "DATE_ISO" : g_pos = 11 of "DATE_FR" : g_pos = 12 of "DATE_US" : g_pos = 13 of "TELEPHONE" : g_pos = 14 of "MAIL_ISO" : g_pos = 15 of "YES_NO" : g_pos = 16 of "SWITCH" : g_pos = 17 of "FPROC" : g_pos = 18 of "FCALL" : g_pos = 19 else : discard while true : let (keys, val) = ioGrid(combo,g_pos) case keys of Key.Enter : fld.text = $val[0] break else: discard callQuery["callRefTyp"] = callRefTyp #=================================================== ....... of Key.PROC: if isVoidF(pnFx,Index(pnFx)) : callQuery[getVoidF(pnFx,Index(pnFx))] (pnFx.field[Index(pnFx)]) fldF.reftyp = parseEnum[REFTYP](pnFx.getTextF(F_F1[Freftyp])) setTerminal() printPanel(base) Run