Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-04-2011
Rowerto Rowerto is offline
Miembro
 
Registrado: abr 2010
Posts: 20
Poder: 0
Rowerto Va por buen camino
Question Problema con unos Forms - "List index out of bounds(0)"

Estoy haciendo un programita que me hara la vida un poco mas facil en el trabajo, pero me he atascado con un problema:

Tengo un formulario con una caja de texto y una DBGrid para realizar consultas sobre una de las tablas de la BdD (Access, con una Query y un DataSource). Cada vez que se pulsa una tecla en la caja de texto, se relanza la query.
La cosa es que quiero que si se pulsa una celda de la DBGrid (o si solo nos queda una opcion en la DBGrid), nos abra un nuevo form con la informacion que hay sobre el centro solicitado (debido a que es mucha informacion y desde la DBGrid no se veria completa). Para ello uso su evento OnCellClick con el siguiente codigo

Código Delphi [-]
procedure TFormPrincipal.DBGrid1CellClick(Column: TColumn);
begin
  try
    FormInfoCentro := TFormInfoCentro.Create(Application);
    FormInfoCentro.ShowModal;
  finally
    FormInfoCentro.Free;
  end;
end;

Donde FormInfoCentro es el form que se debe abrir tras picar una celda, que tengo puesto en el uses del formulario principal y viceversa

Desde FormInfoCentro tengo el siguiente codigo, que falta por completar pero que para lo que necesitamos llega y sobra. Lo hice en el OnCreate del FormInfoCentro, ya que debe realizar la operacion de muestra de datos una vez se abra el formulario.

Código Delphi [-]
procedure TFormInfoCentro.FormCreate(Sender: TObject);
begin
  Label1.caption:='Centro : '+ FormPrincipal.DBGrid1.DataSource.DataSet.Fields.Fields[0].AsString;
end;

Donde Label1 es una etiqueta para el nombre y el campo 0 del DataSet es el nombre del centro que se pica en la DBGrid.

Hasta aqui todo correcto, pero el problema es que al compilar me da el error "List index out of bouns(0)". Sin embargo, si continuo la ejecucion del programa, realiza la operacion de forma correcta (es decir, se ve el nombre del centro picado en el FormInfoCentro).

He probado a crear un boton en el FormInfoCentro para que no lance el codigo en la apertura, con lo que logro que no me de el error de compilacion y se ejecute de forma correcta. El codigo es el que sigue.

Código Delphi [-]
procedure TFormInfoCentro.Button1Click(Sender: TObject);
begin
  Label1.Caption:='Centro: '+formprincipal.DBGrid1.DataSource.DataSet.Fields.Fields[0].AsString;;
end;
procedure TFormInfoCentro.FormCreate(Sender: TObject);
begin
  button1.Click;
end;

Alguien podria decirme por que da el error cuando lo lanzas desde el OnCreate y no lo hace si pongo un boton, y ayudarme para solucionarlo?

Gracias de antemano a todos y si los administradores creen que esto debe estar en otra seccion lo hagan sin dudar.
Responder Con Cita
 



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
Problema con cliente servidor, error "xsqlda index out of range" Buelos Varios 0 18-07-2008 05:49:57
List Index Out of Bounds(1) Paulao Varios 4 22-05-2008 07:55:26
List index out of bounds (3) esimon OOP 5 18-07-2007 14:28:47
Error "List index out of bounds(7)" mamen .NET 2 23-01-2006 23:09:38
error al insertar campos "index of bounds(0)" carobahamondes MySQL 1 26-04-2005 00:40:24


La franja horaria es GMT +2. Ahora son las 21:03:53.


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