Q:  How do I to one character type-ahead in a TDBGrid?

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;