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
  #10  
Antiguo 23-04-2017
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
El código puede escribirse de muchas formas pero lo que lo retrasa el la línea Memo1.Lines.Add(
Código Delphi [-]
// Similar al de roman con multiplicación binaria
var
  i :Integer;
begin
  Memo1.Text:='Numeros impares';

 for i := 0 to 499 do
   Memo1.Lines.Add(IntToStr((i shl 1) + 1));
end;

Código Delphi [-]
var
  i: integer;
begin
  i:= 1;
  Memo1.Text:='Numeros impares';
  repeat
    Memo1.Lines.Add(IntToStr(i));
    inc(i,2);
  until i > 999;
end;

Si hacemos que el memo se escriba por mensajes, cualquiera de las formas se ejecuta en menos de 10 milisegundos:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  i:= 1;
  Memo1.Text:='Numeros impares';
  repeat
    //Memo1.Lines.Add(IntToStr(i));
    PostMessage(Handle, WM_USER, i, 0);
    inc(i,2);
  until i > 999;
end;

procedure TForm1.OnMsg(var Msg: TMessage);
begin
  Memo1.Lines.Add(IntToStr(Msg.WParam));
end;

Los bucles terminarán en escasos milisegundos aunque el Memo tardará en llenarse de forma ordenada lo que tarde Windows en tramitar la cola de mensajes.


Saludos.
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
Copiar números impares de un listbox a otro ale4132 Varios 5 17-12-2012 19:33:10
Consulta Desde->Hasta Luis M. Firebird e Interbase 6 30-07-2008 19:40:34
1000 Mil M 0011 1110 1000 3e8 sakuragi La Taberna 29 05-03-2008 18:28:56
Poner puntos a los números mayores de 999 y hasta 1M Pedro-Juan Trucos 2 26-12-2007 19:13:08
Factorial hasta 1000 Cheswar Varios 29 21-09-2007 20:43:27


La franja horaria es GMT +2. Ahora son las 11:43:26.


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