Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Intraweb: obtener el valor de un combobox (https://www.clubdelphi.com/foros/showthread.php?t=24694)

Brewster 30-08-2005 20:18:49

Intraweb: obtener el valor de un combobox
 
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" :

Cita:

Empezado por Ayuda de Delphi
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í:

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


La franja horaria es GMT +2. Ahora son las 10:21:33.

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