Creo que rellenar la lista de valores de la columna Codigo, con la llamada a:
Sólo debes hacerlo una vez. No es necesario que la llenes cada vez que ańadas un nuevo registro. Por ejemplo, en el
AfterOpen del dataModule "ligado" al DBGrid.
Y para buscar el resto de valores que corresponden al código (nombre y precio) puedes usar el evento
DataChange del campo código.