keypriview:=true;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var mm:boolean;
begin
mm:=form1.ActiveControl is TDBGrid;
if (key=13 )and mm then
begin
dbgrid1.SelectedIndex:=dbgrid1.SelectedIndex-1;
end;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var mm:boolean;
begin
mm:=form1.ActiveControl is TDBGrid;
if (key=13 )and mm then
begin
dbgrid1.SelectedIndex:=dbgrid1.SelectedIndex-1;
end;
end;
unit Keydefs;interfaceuses WinTypes;const
MaxKeys = 24;
ControlKey = '^';
AltKey = '@';
ShiftKey = '~';
KeyGroupOpen = '{';
KeyGroupClose = '}';type
TKeyString = String[7]; TKeyDef = record
Key: TKeyString;
vkCode: Byte;
end;const
KeyDefArray : array[1..MaxKeys] of TKeyDef = (
(Key: 'F1'; vkCode: vk_F1),
(Key: 'F2'; vkCode: vk_F2),
(Key: 'F3'; vkCode: vk_F3),
(Key: 'F4'; vkCode: vk_F4),
(Key: 'F5'; vkCode: vk_F5),
(Key: 'F6'; vkCode: vk_F6),
(Key: 'F7'; vkCode: vk_F7),
(Key: 'F8'; vkCode: vk_F8),
(Key: 'F9'; vkCode: vk_F9),
(Key: 'F10'; vkCode: vk_F10),
(Key: 'F11'; vkCode: vk_F11),
(Key: 'F12'; vkCode: vk_F12),
(Key: 'INSERT'; vkCode: vk_Insert),
(Key: 'DELETE'; vkCode: vk_Delete),
(Key: 'HOME'; vkCode: vk_Home),
(Key: 'END'; vkCode: vk_End),
(Key: 'PGUP'; vkCode: vk_Prior),
(Key: 'PGDN'; vkCode: vk_Next),
(Key: 'TAB'; vkCode: vk_Tab),
(Key: 'ENTER'; vkCode: vk_Return),
(Key: 'BKSP'; vkCode: vk_Back),
(Key: 'PRTSC'; vkCode: vk_SnapShot),
(Key: 'SHIFT'; vkCode: vk_Shift),
(Key: 'ESCAPE'; vkCode: vk_Escape));
function FindKeyInArray(Key: TKeyString; var Code: Byte): Boolean;implementation
uses SysUtils;
function FindKeyInArray(Key: TKeyString; var Code: Byte): Boolean;
{ function searches array for token passed in Key, and returns the }
{ virtual key code in Code. }
var
i: word;
begin
Result := False;
for i := Low(KeyDefArray) to High(KeyDefArray) do
if UpperCase(Key) = KeyDefArray[i].Key then begin
Code := KeyDefArray[i].vkCode;
Result := True;
Break;
end;
end;end.
很有用的
結合dbgrid1.SelectedIndex:=dbgrid1.SelectedIndex-1;這個你還不能實現我才不信