FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Asignar valor ComboBox a una variable
Por qué?
Con el Debug veo que el valor de ComboBox1.ItemIndex es = 0,1,2,3 pero al asignar ese valor a la variable cVal, cVal siempre es 0. Por qué? |
#2
|
||||
|
||||
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
Acabo de releer tu pregunta y no veo muy claro lo que quieres, te añado este otro código para ver si van por ahí los tiros:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#4
|
||||
|
||||
itemIndex devuelve el indice del valor seleccionado en el combobox, el cual es unico en cada corrida de una funcion (no puede ser dos y tres al mismo tiempo). Eso indica que siempre que corres ese procedure, esta seleccionado el primer item del combo. No?
__________________
Héctor Geraldino Software Engineer |
#5
|
||||
|
||||
Gracias Amigos,
Es mucho más simple que todo eso. Lo que quiero es asignar el índice del 'elemento seleccionado', es decir, el ItemIndex, a una variable para después volver a utilizar ese valor. ComboBox1 tiene los siguientes Strings : 'Diario', 'Horas', 'Minutos' e 'Intervalos'. En una base de datos se va a guardar el valor 0, 1, 2 o 3, según el elemento seleccionado. Lo que me pasa en concreto, curiosamente es lo siguiente : Que tengo otro procedimiento asociado al DataSource
Precisamente esto lo hago para que según el valor de la base de datos en el campo DIVISIONTYPE (0,1,2 o 3) me muestre correctamente el 'String' asociado a cada valor en el ComboBox2. Hasta aquí correcto. Pero ahora resulta que cuando selecciono un elemento del ComboBox2 y quiero asignarle el valor 0, 1, 2 o 3 según el String seleccionado mediante: precisamente entonces no puedo asignar al campo DIVISIONTYPE el valor seleecionado, ya que como tengo que poner en modo edit el Query1, con IBQuery1.Edit, este a su vez me llama al método anterior del DataSource1DataChange y fastidiosamente me vuelve a resetear el valor que había inicialmente en el campo DIVISIONTYPE de la base de datos, con lo que nunca me lo cambia según estos métodos. Lo que debería querer hacer es:
De ahí precisamente mi pregunta inicial. Quiero asignar a cVal el índice seleccionado en el ComboBox2 para despues poder hacer IBQuery1.Edit y darle el valor correcto a DIVISIONTYPE. Lo muy raro, (por lo menos para mí, y ya sé que la solución será muy simple...) es que mirando con el Debug, cuando ejecuto independientemente del elemento seleccionado del ComboBox2, cVal siempre es 0!! Y de nuevo mi pregunta, por qué? Muchas gracias una vez más. |
#6
|
|||
|
|||
Para evitar el problema que comentas, podrías deshabilitar el evento onDataChange, cuando cambias el comboBox.
un saludo |
#7
|
||||
|
||||
Muchas gracias, así funciona.
No obstante, me queda la duda de porqué cVal no adopta el valor correspondiente. Entiendo que es porque la variable cVal apunta a la posición de la memoria donde se almacena el valor de ComboBox2.ItemIndex. Por eso mi pregunta de como podría almacenar el valor correspondiente de la selección en esa variable? Pregunto, debería declararla como cVal : const;? |
|
|
|