The following are the useage of the
KeyStringList unit

KeyStringList uses a INI files' key
values, e.g: (MoveUp=VK_UP), and finds
respective virtual key codes to be processed
within KeyDown & KeyUp events handlers,
user should supply respective TShortCut
type variables within the application


Here is useage:

declare some shortcuts

    nTestKey : TShortCut;
    nMoveUp : TShortCut;
    nClose : TShortCut;
    nFullvsNormalScreen : TShortCut;

KeyBoardIniFileName : string;   //e.g: Keyboard.ini
SectionName : string;  // key definition map section within the ini file
KeyStrList : TKeyStringList;
.
.
  KeyStrList:= TKeyStringList.create;

  // state the key definitions INI files' name
  KeyBoardIniFileName:= 'Keyboard.ini';
  // file name should be given in full path
  KeyBoardIniFileName:= ExtractFilePath(ParamStr(0)) + KeyBoardIniFileName;
  SectionName:= 'KeyboardMap';
  // this method called before .KeyValue	
  KeyStrList.IniFileAndSectionName(KeyBoardIniFileName, SectionName);

  nMoveUp := KeyStrList.KeyValue('MoveUp');
  nTestKey :=  KeyStrList.KeyValue('TestKey');
  nClose :=  KeyStrList.KeyValue('Close');
  nFullvsNormalScreen := KeyStrList.KeyValue('FullvsNormalScreen');


  .
  .
  KeyStrList.Free;  // no longer needed


so we get the values for nMoveUp, nClose...

this values can then be processed within any KeyDown
or KeyUp events handlers, such as;

procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  ShortCutKey:TShortCut;
.
.
  ShortCutKey := ShortCut(Key, Shift); // this is important

  if ShortCutKey = nMoveUp then
  begin
    HandleMoveUpProc; // call any proc
  end;


