Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #28  
Antiguo 22-05-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Hola Daniel,

Vuelves a mezclar mucho código de distintas cosas generando un caos en el código... Divide y vencerás!! esa es la técnica que tienes que utilizar, haz pequeñas funciones o procedimientos donde realice las mínimas acciones posibles y minimices los posibles errores, en particular tu código que has puesto podría quedar algo así:

Código Delphi [-]
function TForm1.GetComboBoxValue: Integer;
begin
  result:=0;
  with combobox1, items do
    if Itemindex>=0 then
      try
        //Convierte la cadena del combo en un numero
        result:=StrToInt(Items[itemIndex]);
      except
      end;
end;

procedure TForm1.GenerarCombinacionesAleatorias(const Numero:Integer);
var
  i:longint;
begin
  setLength(listCombinaciones, Numero);
  for i:=0 to High(listCombinaciones) do
    listCombinaciones[i].aleatorio;
end;  

function TForm1.BuscarMejorcombinacion: Tcombinacion;
begin
  //cargar la combinación maestra
  ... 
end; 

procedure TForm1.Button9Click(Sender: TObject);
var
  NumeroDeElementos:Integer;
  CombinacionMaestra:TCombinacion;
begin
  //Obtiene el numero de elementos seleccionado por el usuario en el combobox
  NumeroDeElementos:=GetComboBoxValue;
  //Genera una lista de N elementos de combinaciones aleatorios, mostrándolas en un listbox
  GenerarCombinacionesAleatorias(NumeroDeElementos);
  // Obtiene la combinación maestra
  CombinacionMaestra:=BuscarMejorcombinacion;
  //compara las combinaciones aleatorias con la combinación maestra
  CompararCombinacionesAleatorias(CombinacionMaestra);
end;

no se por que utilizas aquí un case, Poner un case por cada opción del combobox ademas de no ser muy eficiente, es duplicar código y complicar el proceso
Cita:
Empezado por danielmj Ver Mensaje
Código Delphi [-]
...
...
case comb.ItemIndex of
    0: //corresponde con el valor 5000
    begin
  ...
¿Por que no te hace los ciclos que tu quieres? pues seguramente este asignando el numero de elementos de la variable list* incorrectamente.
*.- te recomiendo que a las variables importantes y mas o menos globales les pongas nombres descriptivos que a simple vista sean fácilmente identificable.

Y en cuanto a CS1:
Cita:
Empezado por danielmj Ver Mensaje
Y por otra parte, veo que en cs1, juega con una combinacion arbitraria:
Código Delphi [-]
cs1 := '23 45 17 15 22 36';
Esto no se por que lo has puesto así, CS1 solo es la representación en string de la combinación maestra, y se utiliza para no estar en cada ciclo repitiendo el proceso de convertir dicha combinación a string, combinación que una vez calculada ya no vuelve a cambiar nunca, y por ser un proceso relativamente lento, en definitiva para acelerar cada iteración
Código Delphi [-]
cs1 := CombinacionMaestra.AsString;
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
sumando valores de un listview danielmj Varios 28 14-11-2014 21:52:30
VALORES FANTASMAS FIREBIRD 2.1 valores Grandes ASAPLTDA Firebird e Interbase 17 02-12-2012 12:09:02
Rellenar con 0.... buitrago Varios 6 17-11-2011 20:02:53
¿Cómo insertar una imágen en un lisbox o un memo? Acuarius3000 Gráficos 3 27-06-2005 08:44:53
arastrar archivos a un lisbox gulder C++ Builder 3 05-05-2005 13:31:50


La franja horaria es GMT +2. Ahora son las 12:10:01.


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