A: Note: Be sure that the table's selected index is the one that you are doing the type-ahead with. Also, be aware that this code will prevent you from editing directly into the TDBGrid. You may want to add a flag that lets you pick and choose between type-ahead and editing.
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var s: string;
begin
with table1 do begin
s := FieldByName('company').AsString;
if uppercase(s[1]) = uppercase(key) then next
else FindNearest([key]);
end;
key := #0; {Gets rid of the beep.}
end;