Tu pregunta es la del millon. Todos andamos con ese mismo problema.
El DBLookupcombo, te muestra todos los registros que existen, pero no te deja escribir en la caja de texto, las letras que pulsas si las completa, pero no es nada intuitivo para un usuario final. Por otra parte no te deja añadir un dato que no existe.
Un DBCombobox, te deja escribir, y autocompletar lo que pongas, pero puedes modificar a voluntad un dato que ya existe, así que tienes que hacer 2 pasos:
1.- Al cargar el form, tienes que recorrer todos los registros para añadir el valor que desees a la lista desplegable.
2.- En el OnkeyPress y/o ONExit, tienes que controlar que el valor que haya puesto realmente existe, o ver si es uno nuevo para añadirlo a la lista.
Tambien existe una tercera solución que es la intermedia. Usas una tabla con 2 campos, Codigo y Valor, tal que quede así:
Código:
codigo valor
-----------------------------
cboFrmFacturas opcion 1
cboFrmFacturas opcion 2
cboFrmFacturas opcion 3
cboClientesPoblacion Lepe
cboClientesPoblacion Alava
Esto significa que realmente en la base de datos puedes tener más poblaciones, pero en la lista desplegable, solo pones los mas relevantes. Simplemente al cargar la ventana correspondiente, cargas los valores segun el codigo.
Una Cuarta Opcion, es poner un simple TDBEdit y hacer una funcion como el Autocompleta de Excel, que segun escribes, va completando las opciones que ya existe en la hoja, pero te da opción para poner una nueva. Esta opción es la más facil de implentar, pero la mas costosa para el sistema, sobre todo cuando tienes muchos registros.
Saludos