Hola a tod@s. Que tengais un feliz y próspero año.
Me gustaría resolver un problema que tengo con el componente DBLookupComboBox. Me explico.
En un form de alta de clientes, quiero poner la nacionalidad del mismo, con un DBLookupComboBox que está asociado al campo pais de una tabla. Supongamos que cuando se a seleccionado el país, el usuario se arrepiente o se equivoca y quiere dejar el combo vacío ¿cómo lo hago?. Hace tiempo utilizaba las librerías RX, aquellas rusas, y me iba muy bien porque tenían un método llamado ResetField, que dejaba el DBLookupComboBox vacío. Algo así:
Código Delphi
[-]
procedure TFormAddClient.RxDBLookupComboBoxPaisKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Key = VK_ESCAPE) or (Key = VK_DELETE) or (Key = VK_BACK) then
FormAddClient.RxDBLookupComboBoxPais.ResetField;
end;
Ahora estoy utilizando unos componentes que no son nativos de delphi (son skins), por eso tampoco utilizo las rusas, pero no tienen este método (ResetField). He solucionado parte del problema con esto:
Código Delphi
[-]
procedure TFormAddClient.DBLookupComboBoxPaisKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Key = VK_ESCAPE) or (Key = VK_DELETE) or (Key = VK_BACK) then
FormAddClient.DBLookupComboBoxPais.KeyField := '';
end;
esto deja el combo vacío, pero luego no se puede seleccionar otro pais si se quiere, se ha de cerrar el form y abrirlo de nuevo.
¿Alguien conoce alguna forma de solucionar esto?
Muchas gracias por adelentado y lo dicho: que tengais un feliz y próspero año.