Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-12-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
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
  #2  
Antiguo 21-12-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
  #3  
Antiguo 22-12-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Poder: 21
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 23:26:32.


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