Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Post Seleccion de item en combobox da error list index out of bonds

Buenas a todos.

Pues como he puesto en el título, cuando selecciono un item del combobox si la columna [15] del grid está en visible :=false, me da el error.

Código Delphi [-]
procedure TF_Pagues.DBLookupComboBox1Exit(Sender: TObject);
begin
        If DBEdit3.Text='0' then
        begin
                JvDBUltimGrid1.Columns[15].Visible:=False;      // Aquí es donde da el error del list index out of bounds ya que si
                                                                               // en el mecanico anterior el visible de la columna es false, no la
                                                                               // encuentra y marca el error                 
                DBEdit3.Font.Color:=clBlack;
                DBEdit3.Color:=clWindow;
        end
        else
        begin
                JvDBUltimGrid1.Columns[15].Visible:=True;
                DBEdit3.Font.Color:=clRed;
                DBEdit3.Color:=clYellow;
        end;
end;

No se como puedo controlar la "visibilidad" de la columna [15] para que no de este error.
Si alguien tiene una idea o se ha encontrado con lo mismo.......

Gracias por adelantado

Josep

Última edición por jafera fecha: 06-05-2013 a las 14:21:52.
Responder Con Cita
  #2  
Antiguo 06-05-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.045
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #3  
Antiguo 06-05-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
No los he puesto?

Es que he tenido que editar el mensaje un par de veces y posiblemente lo has visto mientras estaba en el chapista

Saludos
Responder Con Cita
  #4  
Antiguo 06-05-2013
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
"index out of bonds" da porque quiere acceder a una posicion de un array/lista que no existe, generalmente cuando te pasas del tamaño del array/lista.
Recorda que los indices en esas estructuras que heredan de TList o TCollection suelen ir de 0 a (Count -1), asi que si tenes 15 columnas, van de 0 a 14, quizas le estas errando en eso
Saludos
Responder Con Cita
  #5  
Antiguo 06-05-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.045
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jafera Ver Mensaje
No los he puesto? Es que he tenido que editar el mensaje un par de veces y posiblemente lo has visto mientras estaba en el chapista Saludos
Responder Con Cita
  #6  
Antiguo 06-05-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Gracias por la respuesta.

Efectivamente las columnas van de 0 a 15 i mi columna es la 15 no la catorce.

Resumiendo que el problema es que no encuentra la columna porque su propiedad visible es false cuando cambio de registro, en el primer registro si visible es false o true funciona perfectamente.

Luego cambio de operario en un combobox y la propiedad visible sigue siendo false y aquí es dónde hace el out of bound[15]

Saludos

Josep
Responder Con Cita
  #7  
Antiguo 06-05-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Casimiro, acepto tu "tironcillo de orejas" y sus correspondientes disculpas, jijiji.

Intento en lo máximo cumplir las normas aunque hay una que es la del título descriptivo que creo nos cuesta bastante cumplir a todos.

Saludos

Josep
Responder Con Cita
  #8  
Antiguo 06-05-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
Cita:
Empezado por jafera Ver Mensaje
Buenas a todos.

Pues como he puesto en el título, cuando selecciono un item del combobox si la columna [15] del grid está en visible :=false, me da el error.

Código Delphi [-]
procedure TF_Pagues.DBLookupComboBox1Exit(Sender: TObject);
begin
  If DBEdit3.Text='0' then
  begin
    JvDBUltimGrid1.Columns[15].Visible:=False;  // Aquí es donde da el error del list index out of bounds ya que si
                                                // en el mecanico anterior el visible de la columna es false, no la
                                                // encuentra y marca el error                 
    DBEdit3.Font.Color:=clBlack;
    DBEdit3.Color:=clWindow;
  end
  else
  begin
    JvDBUltimGrid1.Columns[15].Visible:=True;
    DBEdit3.Font.Color:=clRed;
    DBEdit3.Color:=clYellow;
  end;
end;

No se como puedo controlar la "visibilidad" de la columna [15] para que no de este error.
Si alguien tiene una idea o se ha encontrado con lo mismo.......

Gracias por adelantado

Josep
Hola Josep.

No he usado los componentes Jedi, pero no pareciera tener sentido que exista esa relación entre la visibilidad y la existencia de la columna.

Segun entiendo de tu mensaje (y tal vez entendí mal), quiere decir que un código como este:
Código Delphi [-]
begin
  JvDBUltimGrid1.Columns[4].Visible := False;
  JvDBUltimGrid1.Columns[4].Visible := False;  // Error: La columna dejo de existir ??? 
  ...
Lanzaría el error list index out of bounds en la tercer línea aún existiendo la columna 4, ¿ Entonces como se haría para volverla al estado visible ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 08-05-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Problema solucionado.

El problema no venia por el visible en false, venia porque en otro proceso destruía la columna en cuestión y evidentemente list index out of bounds.

Poco a poco iremos aprendiendo más cosillas los que nos dedicamos a esto en plan hobby, hay que darse de bruces con el suelo varias veces para saber que este está duro.

Gracias a todos y perdonad.

Josep
Responder Con Cita
  #10  
Antiguo 08-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por jafera Ver Mensaje
Problema solucionado.

El problema no venia por el visible en false, venia porque en otro proceso destruía la columna en cuestión y evidentemente list index out of bounds.
¡Qué bien! Pero no estaría mal que explicaras con más detalle cómo es que ese otro proceso repercutía en el código que mostraste al principio. Puede servir a otros en alguna situación similar.
Responder Con Cita
  #11  
Antiguo 08-05-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Correcto Al.

En el DataModule tengo las tablas, pues bien en el after delete de la tabla que guarda las lineas del proceso tenia puesto esto:

Código Delphi [-]
If F_Pagues.DBEdit3.Text = '0' then 
begin 
  F_Pagues.JvDBUltimGrid1.Columns[15].Destroy; 
  L_PaguesDIA_BAIXA.Value:= 0; 
  F_Pagues.DBEdit3.Font.Color:=clBlack; 
  F_Pagues.DBEdit3.Color:=clWindow; 
end

y evidentemente la columna era destruida y era imposible hacera "invisible".

Saludos

Josep
Responder Con Cita
  #12  
Antiguo 08-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Comprendido.

Aunque un módulo de datos no tiene por qué "ver" a la interfaz de usuario (sólo al revés).
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
error list index out of bounds bothy Varios 2 16-04-2010 10:00:19
Pregunta Combobox, selección del item sin hacer click NPIdea OOP 2 15-01-2010 07:42:14
Error List index out of bounds (14) AMINOA2R Firebird e Interbase 3 30-09-2005 00:32:57
Selección automática item combobox neon OOP 0 24-02-2005 13:59:22
Error: List Index Out Bounds() MasterXP SQL 4 18-02-2005 06:41:06


La franja horaria es GMT +2. Ahora son las 14:09:42.


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