Ver Mensaje Individual
  #2  
Antiguo 02-04-2017
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Reputación: 30
jhonny Va camino a la famajhonny Va camino a la fama
Hola, bienvenido, el método básico sería algo como lo siguiente:

Supongamos que no es una app de consola y tienes un TEdit llamado Edit1, entonces en el OnClick de un botón pones...


Código Delphi [-]
var
  vNumero, vI, vCantidad: NativeInt;
begin
  vNumero := StrToInt(Edit1.Text);

  for vI := 1 to vNumero do
    if (vNumero mod vI) = 0 then
      vCantidad := vCantidad + 1;

  ShowMessage(vCantidad.ToString);
end;

Ya, eso sería todo.

Sin embargo, si quieres usar parallels para lograr esto, se podría hacer algo así:

Agregar en el uses las unidades...
  • System.Threading
  • System.SyncObjs

Y escribir en aquél botón:

Código Delphi [-]
var
  vNumero, vCantidad: Int64;
begin
  vNumero := StrToInt(Edit1.Text);

  TParallel.&For(1, vNumero,
    procedure(vI: Int64)
    begin
      if (vNumero mod vI) = 0 then
        TInterlocked.Increment(vCantidad);
    end);

  ShowMessage(vCantidad.ToString);
end;

Espero te sirva, saludos.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 02-04-2017 a las 07:37:33.
Responder Con Cita