Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-10-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola ñuño,

el error salta cuando se pulsa este boton..
Código Delphi [-]
procedure TForm1.Button4Click(Sender: TObject);
var
   i, j, p : Integer;
   ModaCount : Array[0..5] of Integer;
   AModa : Array[0..5] of TModa;
   b : Boolean;

begin

   // Cuenta cuantas ocurrencia hay de un número.
   // la posición del arreglo corresponde al número generado aleatoriamente
   // El valor del arreglo corresponde a la cantidad de ocurrencias encontradas para ese número.
   FillChar(ModaCount,Sizeof(ModaCount),0);
   for i := 0 to lista.Items.Count - 1 do
   begin
      for j := 0 to lista.Items.Item[i].SubItems.Count - 1 do
      begin
         p := StrToInt(lista.Items.Item[i].SubItems.Strings[j]);
         ModaCount[p] := ModaCount[p] + 1;
      end;
   end;

   // Genera un arreglo con los 6 primeros números en orden de repetición.
   FillChar(AModa,Sizeof(AModa),-1);
   for i := Low(AModa) to High(AModa) do
      for j := Low(ModaCount) to High(ModaCount) do
      begin
         if AModa[i].Count < ModaCount[j] then
         begin

            for p := 0 to 5 do
               if (AModa[p].Number = j) then
                  b := True;

            if not b then
            begin
               AModa[i].Number := j;
               AModa[i].Count := ModaCount[j];
            end;

            b := False;

         end;
      end;

   // Muestra los primeros números repetidos en secuencia hasta un máximo de 6
   for i:= 0 to 6 do
   begin
      if (AModa[i].Count <> 0) then
        ShowMessage(Format('El %s número es %d con %d ocurrencias',[Secuencia[i],AModa[i].Number,AModa[i].Count]));
   end;
end;

Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 14-10-2016
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.680
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Sigue paso a paso el código con el depurador y mira la línea que da error.
Responder Con Cita
  #3  
Antiguo 14-10-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Deberías ser más específico en cuanto a la localización del error. Sin embargo, en el código que escribes, el útimo ciclo seguramente te producirá el error de "Index out of bounds":

Código Delphi [-]
   // Muestra los primeros números repetidos en secuencia hasta un máximo de 6
   for i:= 0 to 6 do
   begin
      if (AModa[i].Count <> 0) then
        ShowMessage(Format('El %s número es %d con %d ocurrencias',[Secuencia[i],AModa[i].Number,AModa[i].Count]));
   end;

AModa va de 0 a 5 y tu ciclo va de 0 a 6.

LineComment Saludos
Responder Con Cita
  #4  
Antiguo 14-10-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
Hola, escribió desde el móvil lo digo por si alguna palabra no se entiende..
Gracias por responder, lo del 0..6, el 6 lo puse por probar, pero el error ya me daba
Con 0..5
Hola casimiro, ahora mismo estoy en el curro, pero mañana miraré lo del depurador.
Gracias otra vez y un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #5  
Antiguo 17-10-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por danielmj Ver Mensaje
Hola, escribió desde el móvil lo digo por si alguna palabra no se entiende..
Gracias por responder, lo del 0..6, el 6 lo puse por probar, pero el error ya me daba
Con 0..5
Pues si haces una pregunta y pones un código, trata de que éste coincida con tu problema. Y sigues sin contestar en qué punto exactamente ocurre el error.

LineComment Saludos
Responder Con Cita
  #6  
Antiguo 18-10-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola, ya esta solucionado, el problema es que no habia declarado los campos "max y rows" en el apartado de constantes. Estuve toqueteando y debí borrarlo.
El código que tiene relacion con el error y la pregunta en cuestion es este:

Código Delphi [-]
private
    { Private declarations }
  public
    { Public declarations }
  end;

  TModa = record
     Number : Integer;
     Count : Integer;
  end;

  THilo = class( TThread )
    Ejecutar: procedure of object;
    procedure Execute; override;
  end;

const
  {Max = 50; // Número máximo de elementos a generar aleatoriamente
  Rows = 100; // Número máximo de lineas del control TListview}
  Secuencia : Array[0..5] of String = ('primero','segundo', 'tercero', 'cuarto', 'quinto', 'sexto');
  Max = 50; // Número máximo de elementos a generar aleatoriamente
  Rows = 150000000; // Número máximo de lineas del control TListview

Como se puede ver, max y rows aparecen marcados como comentarios y ahí estaba el error.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
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
error list index out of bounds bothy Varios 2 16-04-2010 10:00:19
Error (List Index of bounds)? DM2005 Varios 2 08-07-2006 12:53:29
Error List index out of bounds (14) AMINOA2R Firebird e Interbase 3 30-09-2005 00:32:57
Error: List Index Out Bounds() MasterXP SQL 4 18-02-2005 06:41:06
Error (list index out of bounds) en Zeos DBO 6.0.12 hhuillcen MySQL 2 09-12-2003 19:44:11


La franja horaria es GMT +2. Ahora son las 09:04:54.


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