PDA

Ver la Versión Completa : Intraweb: obtener el valor de un combobox


Brewster
30-08-2005, 20:18:49
Hola a todos.-

Esta pregunta es bien sencilla pero no veo manera de que me salga.

Quiero extraer el valor que se ha seleccionado de un combobox. Hago lo siguiente.-

valor:= comboboxPrincipal.Items.ValueFromIndex[comboboxPrincipal.ItemIndex];

Pero me devuelve siempre una cadena vacia.

Creo que el problema puede residir en que el valor comboboxPrincipal.itemIdex me da siempre el valor -1.

Gracias por adelantado.

ContraVeneno
30-08-2005, 20:26:54
Yo creí que usar comboboxPrincipal.Items[comboboxprincipal.ItemIndex] te regresaba el valor en forma de string.. O simplemente comboboxPrincipal.Text

si itemindex=-1 entonces no se ha seleccionado nada.


Nunca había visto ValueFromIndex, que revisando la ayuda de delphi te regresa un WideString.
(sin mecionar que no encontre valuefromindex para un combobox)


¿cuál es el objetivo de usa ValueFromIndex?

Brewster
31-08-2005, 10:40:16
Ahi está el problema, que itemIndex es siempre -1, pero en el combobox se selecciona siempre algo, he probado rellenar el combobox al crear el formulario en vez de por defecto, pero nada.

Siempre que se elige algun item del comboxbox tiene el valor -1.

El código es bien sencillo pero por más vueltas que le doy no veo el error.

dec
31-08-2005, 11:22:05
Hola,

Lo que ocurre es que la propiedad "ValueFromIndex" :


Represents the value part of a string with a given index, on strings that are name-value pairs.

Esto es, que, probablemente no necesitas utilizar esa propiedad, pero la propia "Items", junto con "ItemIndex" para averiguar qué elemento se seleccionó en el "TComboBox", tal que así:


var
i: integer;
begin
i := cbEjemplo.ItemIndex;
if i <> -1 then
ShowMessage(cbEjemplo.Items[i]);
end;

Si haces pruebas verás que, efectivamente, a la que se seleccione un elemento del "TComboBox" su propiedad "ItemIndex" dejará de ser "-1", pues, como dice ContraVeneno si fuera así se estaría indicando que no hay ningún elemento seleccionado en el "TComboBox".

Revisa en la ayuda de delphi el resto de la descripción y forma de uso de la propiedad "ValueFromIndex" y prueba accediendo a los elementos como se hace arriba, mediante su propiedad "Items", sencillamente.

ContraVeneno
31-08-2005, 16:34:55
Es que no hay otra opción, si itemindex=-1 entonces no tiene nada seleccionado, es así de simple.
Podrías revisar tu código en la parte donde se selecciona un item y comprobar que realmente se seleccione; esto para descubrir porque diantres el itemindex siempre es -1.