procedure TFunctionDBEdit.KeyDown(var Key: Word;
Shift: TShiftState);
var
s: string;
i: integer;
sc: TShortCut;
begin
inherited;
s:='';
sc:=ShortCut(Key, Shift);
for i:=0 to FFunctions.Count-1 do begin
if FFunctions[i].ShortCut=sc then begin
s:=FFunctions[i].Value;
end;
end;
if s<>'' then begin
if not (DataSource.State in [dsEdit, dsInsert]) then begin
DataSource.DataSet.Edit;
end;
Text:=s;
end;
end;