Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2003
julian_ch julian_ch is offline
Miembro
 
Registrado: jun 2003
Posts: 18
Poder: 0
julian_ch Va por buen camino
Angry Problema con StringGrid

Saludos a todos!!!
Mi problema es el siguiente, tengo un StringGrid de 8 columnas y 57 filas, al arrancar la aplicacion relleno la primera fila y la primera columna (no he encontrado de hacerlo en diseño), el problema es que cuando relleno las 57 filas desde un array me da error si las caro todas, sin embargo si cargo 20 o menos todo de PM, k puede ser?? llevo todo la mañana liado con esto y no le encuentro solucion, gracias peña!!
Responder Con Cita
  #2  
Antiguo 11-06-2003
shaktale shaktale is offline
Miembro
 
Registrado: may 2003
Ubicación: Euskal Herria
Posts: 39
Poder: 0
shaktale Va por buen camino
Me parece raro lo que comentas.

Lo unico que se me ocurre es que hay que tener en cuenta que la 1ª col es la 0 no la uno, si defines 57 la ultima es la 56 y no la 57
Responder Con Cita
  #3  
Antiguo 11-06-2003
julian_ch julian_ch is offline
Miembro
 
Registrado: jun 2003
Posts: 18
Poder: 0
julian_ch Va por buen camino
Ya se k parece raro pero es asi, lo de la columna 0 ya lo sabia pero de todas formas si cojo y en lugar de poner las 57, pongo 20, sean las k sea, del principio, del final o sueltas no pasa nada, con 30 por ejemplo si.
Responder Con Cita
  #4  
Antiguo 11-06-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Supongo que utilizas la propiedad Cells para acceder a cada Columna-Fila.

Quizás si indicas el código podamos detectar dónde da el error.
__________________
Guía de Estilo
Responder Con Cita
  #5  
Antiguo 11-06-2003
julian_ch julian_ch is offline
Miembro
 
Registrado: jun 2003
Posts: 18
Poder: 0
julian_ch Va por buen camino
Simplemente es esto, yo creo k esta bien:

for i:=0 to sgCitas.RowCount-1 do
sgCitas.Cells[0,i]:=ArrayHoras[i];

Luego he probado con esto:
sgCitas.Cells[0,1]:=ArrayHoras[1];
sgCitas.Cells[0,2]:=ArrayHoras[2];
sgCitas.Cells[0,3]:=ArrayHoras[3];
sgCitas.Cells[0,4]:=ArrayHoras[4];
sgCitas.Cells[0,5]:=ArrayHoras[5];
sgCitas.Cells[0,6]:=ArrayHoras[6];
sgCitas.Cells[0,7]:=ArrayHoras[7];
sgCitas.Cells[0,8]:=ArrayHoras[8];
sgCitas.Cells[0,9]:=ArrayHoras[9];
.......
sgCitas.Cells[0,57]:=ArrayHoras[57];

Si pongo las 57 lineas tb falla pero si pongo solo 20 no
Responder Con Cita
  #6  
Antiguo 11-06-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Cita:
Si pongo las 57 lineas tb falla pero si pongo solo 20 no
¿Y si pones 56 también falla? ¿RowCount es 57 ó 58?
__________________
Guía de Estilo
Responder Con Cita
  #7  
Antiguo 11-06-2003
shaktale shaktale is offline
Miembro
 
Registrado: may 2003
Ubicación: Euskal Herria
Posts: 39
Poder: 0
shaktale Va por buen camino
En principio parece que estas relleneando bien el grid.

¿Has probado si el problema no está en el grid sino en ArrayHoras?
__________________
Siempre Hay Alguien Ke Te Amarga La Existencia
Soziedad Alkoholika
Responder Con Cita
  #8  
Antiguo 11-06-2003
julian_ch julian_ch is offline
Miembro
 
Registrado: jun 2003
Posts: 18
Poder: 0
julian_ch Va por buen camino
ponga lo k ponga k sea mayor que 20 falla.
rowcount=57
Responder Con Cita
  #9  
Antiguo 11-06-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Mira esta simple prueba y no falla:

Código:
procedure TForm1.Button1Click(Sender: TObject);
var
I:Integer;
begin
  for I:=0 to StringGrid1.Rowcount - 1 do
  begin
  StringGrid1.cells[0,i]:=IntToStr(i);
  end;

end;
El stringGrid tiene 57 filas y me rellena desde 0 a56 sin ningún problema, luego el error tiene que estar en la matriz, que no estamos viendo su definicion?

Un Saludo.
Responder Con Cita
  #10  
Antiguo 11-06-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Este ejemplo esta probado y funciona

Código:
procedure TForm1.Button1Click(Sender: TObject);
var a : array of integer;
    i : integer;
begin
     SetLength(a, StringGrid1.RowCount);
     for i := 0 to High(a) do
       a[i] := i;

     for i := 0 to StringGrid1.RowCount - 1 do
       StringGrid1.Cells[0, i] := IntToStr(a[i]);
end;
Tengo :
* un TStringGrid al que le he puesto RowCount = 60
* una variable de tipo array de integers para hacerlo igual que tu, el cual inicializo en el primer bucle
* en el segundo bucle cargo el StringGrid

Me funciona sin problemas. Haz un debug a ver donde esta fallando y el tipo de error que te da tambien podria ayudar a solucionarlo
Responder Con Cita
  #11  
Antiguo 12-06-2003
julian_ch julian_ch is offline
Miembro
 
Registrado: jun 2003
Posts: 18
Poder: 0
julian_ch Va por buen camino
Me da este error:

Access violation at address 0044CD3D in module 'PLANING.EXE'.
Read for address FFFFFFF0.

El array lo defino asi:

ArrayHoras : array[1..57] of string = ('08:00','08:15','08:30','08:45','09:00','09:15','09:30','09:45','10:00',
'10:15','10:30','10:45','11:00','11:15','11:30','11:45','12:00','12:15',
'12:30','12:45','13:00','13:15','13:30','13:45','14:00','14:15','14:30',
'14:45','15:00','15:15','15:30','15:45','16:00','16:15','16:30','16:45',
'17:00','17:15','17:30','17:45','18:00','18:15','18:30','18:45','19:00',
'19:15','19:30','19:45','20:00','20:15','20:30','20:45','21:00','21:15',
'21:30','21:45','22:00');

En el grid la propiedad rowcount = 58 y poniendo simplemente

for i:=1 to sgCitas.RowCount-1 do
sgCitas.Cells[0,i]:=IntToStr(i);
ya me falla, no deberia pero no entiendo pk lo hace
Responder Con Cita
  #12  
Antiguo 12-06-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Acabo de probar esto

Código:
procedure TForm1.Button1Click(Sender: TObject);
const ArrayHoras : array[1..57] of string =
   ('08:00','08:15','08:30','08:45','09:00','09:15','09:30','09:45','10:00',
   '10:15','10:30','10:45','11:00','11:15','11:30','11:45','12:00','12:15',
   '12:30','12:45','13:00','13:15','13:30','13:45','14:00','14:15','14:30',
   '14:45','15:00','15:15','15:30','15:45','16:00','16:15','16:30','16:45',
   '17:00','17:15','17:30','17:45','18:00','18:15','18:30','18:45','19:00',
   '19:15','19:30','19:45','20:00','20:15','20:30','20:45','21:00','21:15',
   '21:30','21:45','22:00');
var i : integer;
begin
     for i := 1 to sgCitas.RowCount - 1 do
         sgCitas.Cells[0,i] := arrayHoras[i];
end;
haciendo un copy-paste de tu array y..... sin problemas

No podria venir el error por otro lado?
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


La franja horaria es GMT +2. Ahora son las 17:53:36.


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