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 13-05-2013
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 947
Poder: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Prueba este código a ver si te sirve...

Crea un nuevo proyecto
Código Delphi [-]
procedure TForm3.BitBtn1Click(Sender: TObject);
var
  Item, Item2:TlistItem;
  Col:TListColumn;
  i, j, Value, count:Integer;
begin
     Randomize;

     Col:=ListView1.Columns.Add;
     Col.Caption:='Número';
     Col:=ListView1.Columns.Add;
     Col.Caption:='Frecuencia';

     Col:=ListView2.Columns.Add;
     Col.Caption:='Fila';

     Col:=ListView2.Columns.Add;
     Col.Caption:='Col 1';

     Col:=ListView2.Columns.Add;
     Col.Caption:='Col 2';

     Col:=ListView2.Columns.Add;
     Col.Caption:='Col 3';

     Col:=ListView2.Columns.Add;
     Col.Caption:='Col 4';

     Col:=ListView2.Columns.Add;
     Col.Caption:='Col 5';

     Col:=ListView2.Columns.Add;
     Col.Caption:='Col 6';

     ListView1.ViewStyle:=vsReport;
     ListView2.ViewStyle:=vsReport;

     ListView1.Items.Clear;  //Frecuencias de aparición del número en la tabla...
     ListView2.Items.Clear;  //Tabla con números aleatorios...

     {Completado de Tabla de Números para contar la frecuencia...}
     for i:=0 to 49 do
     begin
          Item2:=ListView1.Items.Add;
          Item2.Caption:=IntToStr(i);
          Item2.SubItems.Add('0');
     end;

     //Completado de Tabla con números aleatorios.
     for i:=1 to 100 do
     begin
          Item:=ListView2.Items.Add;

          Item.Caption:=IntToStr(i);

          for j := 0 to 5 do
          begin
               Value:=Random(49);
               Item.SubItems.Add(IntToStr(Value));

               //Busqueda del número aleatorio generado en tabla de Frecuencias...
               Item2:=ListView1.FindCaption(0,IntToStr(Value),false,True,true);
               if Item2<>nil then
               begin
                    //Incrementa la frecuencia del número aleatorio generado...
                    TryStrToInt(Item2.SubItems[0],Count);
                    Inc(Count);
                    Item2.SubItems[0]:=IntToStr(Count);
               end;
          end;

     end;
end;

Saludos cordiales...
Responder Con Cita
  #2  
Antiguo 13-05-2013
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
Hola, gracias por la ayuda, estoy intentando implementar mi programa con este codigo por que ya tengo echa la parte que genera los numeros aleatorios y por tema de diseño y demas, no quisiera modificarlo, asi en que en vez de copiar y pegar miro el codigo y me rompo un poco mas la cabeza, pero me esta costando un poco, ademas tengo dos label, en uno me dira los 6 numeros que mas se repiten de entre todo el listado y en otro label, mostrare cual seria la combinación una vez se tengan los 6 numeros.

A ver si lo consigo, saludos y gracias.
Responder Con Cita
  #3  
Antiguo 14-05-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
danielmj,

Cita:
Empezado por danielmj
...tengo un problema con un Tlistview...seis columnas...100 filas...cada celda almacena un numero aleatorio del 1 al 49...
...El problema...buscar los 6 numeros que mas se repiten de entre todas las celdas...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    ListView1: TListView;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Genera números aleatorios de 0 a Max-1
procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
begin
   Randomize;
   ListView1.Clear;
   for i := 1 to Rows do
   begin
     with ListView1.Items.Add do
     begin
        SubItems.Add(IntToStr(Random(Max)));
        SubItems.Add(IntToStr(Random(Max)));
        SubItems.Add(IntToStr(Random(Max)));
        SubItems.Add(IntToStr(Random(Max)));
        SubItems.Add(IntToStr(Random(Max)));
        SubItems.Add(IntToStr(Random(Max)));
     end;
   end;
   ListView1.Items.Count
end;

// Muestra los seis primeros números repetidos de una secuencia aleatoria
procedure TForm1.Button2Click(Sender: TObject);
var
   i, j, p : Integer;
   ModaCount : Array[0..Max] 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 ListView1.Items.Count - 1 do
   begin
      for j := 0 to ListView1.Items.Item[i].SubItems.Count - 1 do
      begin
         p := StrToInt(ListView1.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 5 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;

end.
El código anterior genera números aleatorios entre 0 y 49 en un control TListView de 100 filas. Variando los valores de las constantes Max y Rows se puede analizar la salida del código de forma más manejable.

El ejemplo esta disponible en el link: http://terawiki.clubdelphi.com/Delph...om_Numbers.rar

Espero sea útil

Nelson.
Responder Con Cita
  #4  
Antiguo 14-05-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Casimiro Notevi,

Cita:
Empezado por Casimiro Notevi
...Recuerda poner los tags al código fuente...
Cita:
Empezado por danielmj
...cuando le doy a previsualizar mensaje, desaparece y lo pone como texto normal y corriente...
Cita:
Empezado por Casimiro Notevi
...solución..."no le des primero a "previsualizar"...
Un procedimiento para poder pre visualizar y enviar el código fuente con sus correspondientes Tags es el siguiente:

1- Colocar el código fuente a enviar con sus correspondientes Tags y texto asociados y pulsar Vista Previa de Mensaje.

2- Si hay errores pulsar el Botón de Página Previa en el Navegador y corregir el error, nuevamente pulsar Vista Previa de Mensaje y repetir el paso 1 y 2 tantas veces se requiera.

3- Cuando la información a enviar este debidamente formateada y verificada en la opción de Vista Previa de Mensaje no utilizar el botón de Enviar Respuesta, en su defecto pulsar el Botón de Página Previa en el Navegador y desde esa página pulsar Enviar Respuesta con lo cual el código fuente quedara debidamente formateado.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 14-05-2013 a las 05:41:01.
Responder Con Cita
  #5  
Antiguo 14-05-2013
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Buena idea
Responder Con Cita
  #6  
Antiguo 14-05-2013
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
Lo tendre en cuenta para futuros post jeje. gracias.

En cuanto al codigo nlsgarcía, sencillamente perfecto, es lo que buscaba, de todos modos, voy a ver como hago para que envez de usar un msg muestre los 6 numeros en etiquetas a modo de resumen, sin tener que pulsar el boton 5 veces.

saludos y gracias!
Responder Con Cita
  #7  
Antiguo 14-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por danielmj Ver Mensaje
...
de todos modos, voy a ver como hago para que envez de usar un msg muestre los 6 numeros en etiquetas a modo de resumen, sin tener que pulsar el boton 5 veces.
Hola.

Bastaría con agregar un TListBox o TMemo a tu form y reemplazar en el código de nlsgarcia la palabra ShowMessage por el nombre de tu ListBox o Memo.

Saludos.

Edito: Me faltó especificar: "Usando sus métodos Items.Add y Lines.Add respectivamente..."
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 15-05-2013 a las 00:00:02.
Responder Con Cita
  #8  
Antiguo 14-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por nlsgarcia Ver Mensaje
danielmj,



Revisa este código:

...

El ejemplo esta disponible en el link: http://terawiki.clubdelphi.com/Delph...om_Numbers.rar

Espero sea útil

Nelson.
Muy buen ejemplo Nelson.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Problema con ListView, angelp4492 Varios 2 12-05-2011 18:07:13
Problema con ListView angelp4492 Varios 2 21-12-2007 10:52:04
Problema con ListView angelp4492 Varios 1 21-12-2007 06:06:06
problema con listview cristian_abb Varios 2 22-06-2006 16:47:12
Problema con ListView Magneto Varios 2 18-07-2003 15:55:39


La franja horaria es GMT +2. Ahora son las 07:59:46.


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