2012-01-05 47 views
5

Lo que traté de lograr es como configurar ItemIndex a -1 como en ComboBox normal, para que el elemento seleccionado sea borrado.DBLookupComboBox - ¿Cómo borrar el elemento seleccionado?

No hay ItemIndex para DBLookupComboBox, y la propiedad de texto es de solo lectura. Entonces, ¿cómo borro el elemento seleccionado? Por favor ayuda. Muchas gracias de antemano.

PD: Cerrar y volver a abrir DBLookupComboBox-> ListSource DataSet no ayuda.

+0

he resuelto el problema con DBLookupComboBox-> KeyValue = ''; ya que el tipo de datos en ListFields es de tipo String. Gracias a Kutsoff y John Easley por darme una pista de las soluciones. :) –

Respuesta

1

dos maneras:

1) en tiempo de ejecución: DbLookupComboBox.KeyValue: = null;

2) en tiempo de diseño: establecer la propiedad DbLookupComboBox.NullValueKey a DEL (o cualquier tecla que desea utilizar para anular el valor en tiempo de ejecución)

+0

1) Lanza EVariantTypeCastError. 2) Causa una Infracción de acceso. Gracias de todos modos. –

+0

1) generalmente ocurre cuando la clave de búsqueda y los campos clave no coinciden. Si su campo clave es una cadena, entonces sí, puede asignar ''. 2) Nunca he experimentado esto ... siento ... –

2

DBLookupComboBox representa el valor de un campo de una base de datos. Por lo tanto, debe borrar/cambiar el valor del campo para borrar/cambiar el valor de DBLookupComboBox por código.

2

Puede utilizar

DBLookupComboBox.KeyValue := -1;
+0

Al establecer KeyValue restablece el elemento seleccionado, pero arroja la excepción EVariantTypeCastError. Estoy usando C++ Builder 2009, no estoy seguro si esto tiene algo que ver con la excepción. Gracias de cualquier manera. –

0

si primera vez que configure KeyField dblokupcombobox en propiedad es 'la ciudad '// ejemplo

si desea borrar el elemento seleccionado se puede utilizar este

procedure TFtreset.BitBtn6Click(Sender: TObject); 
begin 
    dblookupcombobox2.KeyValue:='city'; 
end; 
Cuestiones relacionadas