Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   DBLookupComboBox vacío (https://www.clubdelphi.com/foros/showthread.php?t=38972)

Pedro-Juan 06-01-2007 09:07:27

DBLookupComboBox vacío
 
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.


kalisto 06-01-2007 12:07:51

Prueba asi

Código Delphi [-]
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

Solucionado
 
Muchas gracias.

Se me ha solucionado el problema con:

Código Delphi [-]
dblookupCombo.KeyValue := NULL;

Era exactamente lo que quería.


La franja horaria es GMT +2. Ahora son las 22:11:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi