Man kann so eine Shortcut-Tabelle auch direkt im Programm erzeugen. Dazu benötigt man zuerst das TAccel-Record. Abhängig von der Anzahl der Shortcuts, die wir benötigen, definieren wir ein Array dieses Records und ordnen den jeweiligen Elementen dann die Daten zu. In unserem Fall haben wir nur zwei Shortcuts, so dass der programmtechnische Aufwand relativ gering ist:
var AccelTable : array[0..1]of TAccel;
begin // Shortcut #1 (STRG+S) definieren AccelTable[0].fVirt := FCONTROL or FVIRTKEY; AccelTable[0].key := WORD('S'); AccelTable[0].cmd := IDC_ACCEL_SC;
// Shortcut #2 (ALT+S) definieren AccelTable[1].fVirt := FALT or FVIRTKEY; AccelTable[1].key := WORD('S'); AccelTable[1].cmd := IDC_ACCEL_CLOSE; end.
Nun rufen wir nur die API-Funktion "CreateAcceleratorTable" auf, die als Parameter unser Array und die Anzahl der definierten Shortcuts erwartet:
hAccelTbl := CreateAcceleratorTable(AccelTable,2);
Die so erzeugte Shortcut-Tabelle muss vor dem Beenden des Programms mit der Funktion "DestroyAcceleratorTable" wieder freigegeben werden.