Einzelnen Beitrag anzeigen

Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Programmberechnung über Listbox läuft zu langsam

  Alt 6. Mai 2005, 23:02
Ich wollte Programm erstellen was Zahlen verarbeitet.Und die Berechnung erfolgt über die Listbox. Dies wird mit der Zeit aber viel zu langsam.


Das Problem muss irgendwo hier liegen
Delphi-Quellcode:
var
  x, i, pl0, Counter: Integer;
  cg, cb : double;
  counte : array[0..81] of Integer;
  werte : array[0..81] of mySet;
begin
  Anzeige.Items.BeginUpdate;
   Label999.Caption:=IntToStr(Anzeige.Items.Count);
  Anzeige.Items.InsertObject(0, AItem, Pointer(AColor));
  DoubleBuffered := True;
  cg := (Form2.SpinEdit1.Value);
  cb := (Form2.SpinEdit2.Value);
    begin
    for i := 0 to 81 do
    begin
      Counte[i] := 0;
    end;
    werte[0] := [1];
    werte[1] := [2];
    werte[2] := [3];
    werte[3] := [4];
    werte[4] := [5];
    werte[5] := [6];
    werte[6] := [7];
    werte[7] := [8];
    werte[8] := [9];
    werte[9] := [10];
    werte[10]:= [11];
    werte[11]:= [12];
    werte[12]:= [1,2];
    werte[13]:= [1,3];
    werte[14]:= [1,4];
    werte[15]:= [1,5];
    werte[16]:= [1,6];
    werte[17]:= [1,7];
    werte[18]:= [1,8];
    werte[19]:= [1,9];
    werte[20]:= [1,10];
    werte[21]:= [1,11];
    werte[22]:= [1,12];
    Werte[23]:= [1,2,3];
    werte[24]:= [1,2,4];
    werte[25]:= [1,2,5];
    werte[26]:= [1,2,6];
    werte[27]:= [1,2,7];
    werte[28]:= [1,2,8];
    werte[29]:= [1,2,9];
    werte[30]:= [1,2,10];
    werte[31]:= [1,2,11];
    werte[32]:= [1,2,12];
    werte[33]:= [1,2,3,4];
    werte[34]:= [1,2,3,5];
    werte[35]:= [1,2,3,6];
    werte[36]:= [1,2,3,7];
    werte[37]:= [1,2,3,8];
    werte[38]:= [1,2,3,9];
    werte[39]:= [1,2,3,10];
    werte[40]:= [1,2,3,11];
    werte[41]:= [1,2,3,12];
    werte[42]:= [1,2,4,5];
    werte[43]:= [1,2,4,6];
    werte[44]:= [1,2,4,7];
    werte[45]:= [1,2,4,8];
    werte[46]:= [1,2,4,9];
    werte[47]:= [1,2,4,10];
    werte[48]:= [1,2,4,11];
    werte[49]:= [1,2,4,12];
    werte[50]:= [1,2,5,6];
    werte[51]:= [1,2,5,7];
    werte[52]:= [1,2,5,8];
    werte[53]:= [1,2,5,9];
    werte[54]:= [1,2,5,10];
    werte[55]:= [1,2,5,11];
    werte[56]:= [1,2,5,12];
    werte[57]:= [1,2,6,7];
    werte[58]:= [1,2,6,8];
    werte[59]:= [1,2,6,9];
    werte[60]:= [1,2,6,10];
    werte[61]:= [1,2,6,11];
    werte[62]:= [1,2,6,12];
    werte[63]:= [1,2,7,8];
    werte[64]:= [1,2,7,9];
    werte[65]:= [1,2,7,10];
    werte[66]:= [1,2,7,11];
    werte[67]:= [1,2,7,12];
    werte[68]:= [1,2,8,9];
    werte[69]:= [1,2,8,10];
    werte[70]:= [1,2,8,11];
    werte[71]:= [1,2,8,12];
    werte[72]:= [1,2,9,10];
    werte[73]:= [1,2,9,11];
    werte[74]:= [1,2,9,12];
    werte[75]:= [1,2,10,11];
    werte[76]:= [1,2,10,12];
    werte[77]:= [1,2,11,12];
    werte[78]:= [1,2,3,4,5];
    werte[79]:= [1,2,3,4,5,6];
    werte[80]:= [1,2,3,4,5,7];
    werte[81]:= [1,2,3,4,5,8];

    for pl0 := Form1.Anzeige.count - 1 downto 0 do
    begin
      for x := 0 to 81 do
      begin
        if StrToInt(Form1.Anzeige.Items[pl0]) in werte[x] then
          Counte[x] := 0
        else
          Inc(Counte[x]);
      end;
      for x := 0 to 81 do
      begin
        (FindComponent('Label' + IntToStr(x + 2)) as TLabel).Caption :=
          IntToStr(Counte[x]);
      end;
    end;
  end;
Anzeige.Items.endUpdate;
end;
Angehängte Dateien
Dateityp: zip beispiel_861.zip (25,8 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat