Buenos días. Les explico mi problema.
Tengo un ComboBox de la paleta standar de Delphi XE3, al cual le asigno previamente los Transportes que tiene el Cliente seleccionado. Puede ocurrir, que un pedido para ese Cliente tenga que enviarse por otro transporte que no tiene asignado, por lo que, agregue un Botón al lado del combo, que al presionarlo muestra una grilla de todos los transportes cargados en el sistema, sobre el cual, el usuario selecciona uno, y la propiedad Text del Combo la cambio por el Nombre del transporte seleccionado.
Lo que necesito, es no permitir que el usr escriba libremente sobre el Combo, por lo que pongo la propiedad Style a DropDownList. Pero de esa manera, cuando agrego un transporte que no está en la lista, no puedo modificar la propiedad text del combo.
Asi que me incline por volver el style del Combo al estado original, y escribiendo en el evento KeyPress lo siguiente:
Código Delphi
[-]procedure TF_Principal.cbTransporteKeyPress(Sender: TObject; var Key: Char);
begin
Key:= #0;
end;
De esta manera, puedo seleccionar desplegando el combo, o bien elegir otro tranporte buscando en la grilla que levanto con el boton al lado del combo, pudiendo modificar la propiedad text del mismo.
El problema que tengo aquí, es que el usr suele no desplegar el combo para seleccionar un transporte, directamente empieza a escribir, y le aparece por "Autocompletado", pero esta claro que con el codigo del evento KeyPress, pierdo esta posibilidad de búsqueda.
Alguna solucion?? Quiero tratar de evitarme, tener q agregar como item lo que selecciono de la grilla; pero si no hay otra solución no tendré alternativa.