﻿# VK\_x\{r,d\}F###

The sequence "VK\_x\{r,d\}F### allows you to generate a wide range of exitcode values in response to various click events for the associated control.

The optional "\{r,d\}" may be replaced with "", "r", "d", or "rd" (to enable special handling for right click and/or double click events), and "###" is replaced by a numeric string in the range of 1 to 999999 (defining the exitcode value). The actual byte sequence transmitted will be chr(7) + chr(250), followed by the string of digits (corresponding to the ###), and terminated with a period ("."). You can input and interpret such stings yourself using a character-level input routine (such as GET, ACCEPN[XS](keyword-types.md) or the GETKEY() function), but many higher level A-Shell routines which wait on operator input events (e.g. INFLD, XTREE, XTEXT, EVENTWAIT, etc.) will do the translation for you automatically, returning the corresponding numeric _exitcode_ value. The following table of examples will help clarify: 

| **Code String** | **Click Event** | **Raw Byte Sequence** | **Exitcode** | **Notes** |
|------|------|------|------|------|
| VK\_xF123 | Left Click | chr(7),chr(250),"123." | \-123 | Left click exitcodes are negative |
|  | Right Click | chr(7),chr(250),"123." | \-123 | Since no "r" in code string, right click same as left |
| VK\_xrF42 | Left Click | chr(7),chr(250),"42." | \-42 | Note: ### values < 100 not recommended since they may overlap other pre-defined exitcode values |
|  | Right Click | chr(7),chr(250),"-42." | 42 | "r" present; right click sequence contains "-" but exitcode is positive |
|  | Left DblClick | chr(7),chr(250),"42.",chr(7),  <br>chr(250),"42." | \-42,-42 | "d" not present; double click is same as 2 regular clicks |
| VK\_xrdF9999 | Left Click | chr(7),chr(250),"9999." | \-9999 |  |
|  | Right Click | chr(7),chr(250),"-9999." | 9999 |  |
|  | Left DblClick | chr(7),chr(250),"9999.",  <br>chr(7),chr(250),"9999000." | \-9999,   <br>\-9999000 | First click generates normal sequence; second (double) click generates extended version with extra "000" (x1000). See comments. |
|  | Right DblClick | chr(7),chr(250),"-9999.",  <br>chr(7),chr(250),"-9999000." | 9999,   <br>9999000 | Same as left double click except with positive values. |




**Comments**

Double-click handling is particularly tricky, since by the time the second click is recognized as being part of a double-click sequence, the first click has already been responded to (by generating the corresponding single-click sequence and exitcode). So in order for this to make sense, the application's response to a double-click has to be a logical extension or continuation of its response to a single click. For example, in a screen full of clickable appointment indicators, the single click event might result in more information being displayed about the appointment, while the double click might launch a dialog to allow editing of the appointment attributes. By contrast, if the single clicked caused the application to change its context, it might then no longer be in a position to properly respond to the double click exitcode.