Trochę o działaniu na pętlach

0
  1. Jak policzyć ile razy wykonuje się dana pętla w ciągu sekundy?
    Np. ta: (albo inna)
    for i := 1 to 10000 do begin
    ListBox1.Items.Add('Delphi 7 PE');
    end;

  2. Jak na Labelu zliczyć procent zaawansowania tej pętli (lub innej, dłuższej jeśli ktoś ma pomysł)?
    [???]

0
var
  Frequency, C1, C2, Dfr: Int64;
  i: Integer;
begin
  QueryPerformanceFrequency(Frequency);
  QueryPerformanceCounter(C1);
  for i := 1 to 10000 do 
  begin
    ListBox1.Items.Add('Delphi 7 PE');
  end;
  QueryPerformanceCounter(C2);
  Dfr:=C2-C1;
  //Teraz w Dfr jest ilość cykli zegara wysokiej dokładności, jakie były potrzebne na wykonanie pętli, a Frequency to ilość cykli na sekundę. Przeliczenie tego już chyba nie sprawi co problemu.
end;
0

<font color="green">Jak na Labelu zliczyć procent zaawansowania tej pętli (lub innej, dłuższej jeśli ktoś ma pomysł)?
</span>

W pętli:
Label.Caption := IntToStr(i * 100 div 10000) + '%';

0

Label.Caption := IntToStr(i * 100 div 10000) + '%';

... plus dodatkowo po tym Application.ProcessMessages, bo label nie nadąży z odświeżaniem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1