PDA

Ver la Versión Completa : DBLookupComboBox vacío


Pedro-Juan
06-01-2007, 09:07:27
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í:

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:


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.

kalisto
06-01-2007, 12:07:51
Prueba asi

FormAddClient.DBLookupComboBoxPais.KeyField := '-1;

KAYO
06-01-2007, 12:41:51
existe una propiedad dentro de TdbLockupComboBox que se llama NULLVALUEKEY dentro de la que seleccionas con que tecla eliminas el contenido seleccionado, yo preferiblemente selecciono (DEL) que esta al final de la lista...

luisgutierrezb
06-01-2007, 17:02:32
nada mas como aclaracion, KeyField es la propiedad del campo llave, creo que mas bien se refieren a la propiedad KeyValue...

tambien te puede funcionar:

dblookupCombo.KeyValue := NULL;

Pedro-Juan
06-01-2007, 17:51:33
Muchas gracias.

Se me ha solucionado el problema con:


dblookupCombo.KeyValue := NULL;


Era exactamente lo que quería.