Ver Mensaje Individual
  #1  
Antiguo 13-05-2013
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Reputación: 16
danielmj Va por buen camino
Problema recorriendo ListView

Hola, tengo un problema con un Tlistview, estoy tonteando con el tipico programa de los numeros de la loteria, es decir, el listView tiene seis columnas y (por el momento) 100 filas, en cada celda se almacena un numero aleatorio del 1 al 49, hasta ahí todo bien. El problema viene cuando quiero recorrer todo el listView para buscar los 6 numeros que mas se repiten de entre todas las celdas.
El codigo ahora mismo lo tengo escrito para buscar un solo numero, en teoria el que mas se repite de entre todos.

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  elemento: tlistitem;
begin
numtot:= 0;
for y := 0 to listView1.Items.Count -1 do
  for z := 0 to 49 - 1 do
      begin

        elemento := listView1.FindCaption(0,(IntToStr(z)),true,true,true); //.Findcaption(0,18,true,true,false) then
          if (elemento <> nil) and (z = 10) then
           inc(numtot);
           label7.Caption:= IntToStr(numtot);
      end;

end;

Cuando se ejecuta este trozo del codigo, el resultado siempre es 0
¿donde está el error? ¿no debería ir aumentando el valor de 'numtot' según se vaya repitiendo el número 18 y mostrarlo luego en el label7?
¿Existe otra forma de encontrar los numeros que mas se repiten de entre todas las celdas?

Otro problema que tengo y esto si es un error, es que si ejecuto la aplicacion el pc se cuelga, pero si la ejecuto con delphi abierto de fondo, NO se cuelga. ¿? abajo pongo el texto de la ventana de error que devuelve windows. El numero de veces que se realizan los cálculos aletarios es 21.600.000 veces, por que recorre dos FOR, uno que va hasta 100.000 y otro que va hasta 216 (que es multiplo de 6 (6*6*6)) igual el numero es muy elevado pero deberia fallar aunque delphi este abierto y no solo cuando ejecuto la aplicación con delphi cerrado.

Cita:
Firma con problemas:
Nombre del evento de problema: AppHangB1
Nombre de aplicación: aleatorios.exe
Versión de la aplicación: 0.0.0.0
Marca de tiempo de la aplicación: 5190d797
Firma de bloqueo: 0c4f
Tipo de bloqueo: 0
Versión del sistema operativo: 6.1.7600.2.0.0.256.48
Id. de configuración regional: 3082
Firma adicional de bloqueo 1: 0c4f0997d399d366524a814f7832f13b
Firma adicional de bloqueo 2: 57cc
Firma adicional de bloqueo 3: 57ccfdb22112c570b5d960f240e02003
Firma adicional de bloqueo 4: 0c4f
Firma adicional de bloqueo 5: 0c4f0997d399d366524a814f7832f13b
Firma adicional de bloqueo 6: 57cc
Firma adicional de bloqueo 7: 57ccfdb22112c570b5d960f240e02003
Gracias y saludos.

Última edición por Casimiro Noteví fecha: 13-05-2013 a las 16:48:20.
Responder Con Cita