Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Angel.Matilla.

Cita:
1ª. La línea de código String ID = (int)ComboBox1->Items->Objects[ix], ¿no da error al tratar de meter un int en un string?
¿ Te da error ? (Borland C++ Builder Strings)

Cita:
al correr el programa de da un mensaje List index out of bounds (1)
Revisa que tu consulta SQL esté arrojando al menos un resultado. De no ser así, el combo estará vacío y de allí el error "índice fuera del límite".

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 21-12-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Revisa que tu consulta SQL esté arrojando al menos un resultado. De no ser así, el combo estará vacío y de allí el error "índice fuera del límite".
El query sí devuelve un resultado; de hecho ha de devolver sólo un resultado. Es que además el problema no es ese. El combo se carga con seis elementos en el OnCretae del formulario y los valores son fijos mientras se ejecuta y cuando empiezo a recorrer el bucle, con el primer valor (nItem = 0) se ejecuta bien y como el resultado de la consulta es diferente del object pasa al segundo (nItem = 1), y es en ese momento cuando salta el error: al comparar el valor de la consulta con el object, es como si tratara de ir un índice más allá de lo que corresponde
He probado otra cosa:
Código:
for (int nItem = 0; nItem < Combo->Items->Count; nItem ++)
{
     Valor = (long)(TObject*)Combo->Items->Objects[nItem];
     if (Valor == Query->FieldByName("Situacion")->AsInteger)
     {
          Combo->ItemIndex = nItem;
          break;
     }
}
y me da el mismo error. Sin embargo, si recorro el combo con este código:
Código:
AnsiString Cadena;
long Valor;

for (int i = 0; i < Combo->Items->Count; i++)
{
    Cadena = Combo->Items->Strings[i];
    Valor = (long)(TObject*)Combo->Items->Objects[i];
    ShowMessage("Cadena:" + Cadena + "\nValor: " + IntToStr(Valor));
}
Me muestra los seis valores que tiene cargados el elemento.

Última edición por Angel.Matilla fecha: 21-12-2013 a las 10:52:24.
Responder Con Cita
  #3  
Antiguo 21-12-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Angel.Matilla.
Cita:
Código:
for (int nItem = 0; nItem < Combo->Items->Count; nItem ++)
{
     Valor = (long)(TObject*)Combo->Items->Objects[nItem];
     if (Valor == Query->FieldByName("Situacion")->AsInteger)
     {
          Combo->ItemIndex = nItem;
          break;
     }
}
Según entiendo de ese código deseas posicionar el combo en el elemento correspondiente al entero almacenado como object, acorde a lo seleccionado en el query. Si estoy en lo correcto, no es necesario que recorras el combo, es suficiente con usar el método IndexOfObject.

Ejemplo:
Código:
{
  ComboBox->ItemIndex = ComboBox->Items->IndexOfObject((TObject*)Query->FieldByName("ID")->AsInteger);
}
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 22-12-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Muchas gracias por la ayuda. Lo he probado, pero sigue dando el mismo error List index out of bounds (1).

Última edición por Angel.Matilla fecha: 22-12-2013 a las 11:18:25.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cargar nombres de tablas en un ComboBox Paulao Varios 4 14-08-2011 01:49:00
cargar lista en un combobox o tdblooupcombobox chalo Tablas planas 3 27-04-2011 05:10:21
Cargar combobox con datos de tabla loadminds Tablas planas 10 18-11-2008 19:16:47
Como puedo cargar un ComboBox en un Gridview Shidalis OOP 2 10-08-2005 14:29:29
Cargar Desde Un Combobox CarmaZone Conexión con bases de datos 1 15-05-2005 13:00:39


La franja horaria es GMT +2. Ahora son las 05:55:57.


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
Copyright 1996-2007 Club Delphi