ModifierVariables ( )
This function creates a local boolean variable for each modifier key.
Average rating: 4.4 (30 votes) Log in to vote
Jeff Drake - Show more from this author
Drakeling Technologies |
$CommandOn = 0
$OptionOn = 1
$ControlOn = 0
$CapsLockOn = 0
$ShiftOn = 1
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
By placing this function at the beginning of a script, the script has immediate access to five variables, each denoting the status of a different modifier key at the time the script was initiated.
Note: this function does not return any values outside of the five local variables.
Comments
Josh, Santa Rosa Feb 19, 2009 |
||
Shouldn't the output be: $CommandOn = 0 $OptionOn = 1 $ControlOn = 0 $CapsLockOn = 0 $ShiftOn = 1 <------ if both the shift and option keys are held down during input? |
||
Jeff Drake, Drakeling Technologies Feb 21, 2009 |
||
Yep, I just noticed that too. Thanks for the catch! | ||
Eric, SJSU May 30, 2015 |
||
/* For output, I went ahead and listed all the variable names turned on, so a non-Advanced user can test the result and get a hint about the variables names. Eric Matthews at SJSU edu /* ModifierVariables ©2009 Jeffanna Design Last modified: 8/15/2009 This function sets a series of local variables based on which modifier keys are being pressed, e.g. If the shift key is being pressed, $ShiftOn = 1. If the command key is not being pressed, $CommandOn = 0. */ Let([modifier = If( IsEmpty(Get(TriggerModifierKeys)); Get(ActiveModifierKeys); Get(TriggerModifierKeys) ); $CommandOn = Mod(modifier; 32) ≥ 16; //if the ⌘ (command) key is being pressed. $AltOn = Mod(modifier; 16) ≥ 8; //if the ⌥ (option/alt) key is being pressed $ControlOn = Mod(modifier; 8) ≥ 4; //if the ^ (control) key is being pressed $CapsLockOn = Mod(modifier; 4) ≥ 2; //if the ⇪ (caps lock) key is being pressed $ShiftOn = Mod(modifier; 2) ≥ 1 //if the ⇧ (shift) key is being pressed ]; //end define Let List ( If($ShiftOn; "$ShiftOn"); If($CapsLockOn; "$CapsLockOn"); If($ControlOn; "$ControlOn"); If($AltOn; "$AltOn"); If( $CommandOn; "$CommandOn") ) // Added by Eric.Matthews at SJSU edu ) //end Let |
||
Jeff Drake, Drakeling Technologies May 30, 2015 |
||
Good idea, Eric. Thanks! | ||
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.