Einzelnen Beitrag anzeigen

Hallo_Thomas

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

Re: Performanceproblem mit ca. 30000 Listboxeinträgen

  Alt 12. Mai 2005, 16:47
Zitat von shmia:
TListBox.Items[] hat zwar den Datentyp TStrings, ist aber nicht von TStringList abgeleitet
sondern gehört zur Klasse TListBoxStrings !!!
Hier ein kleiner Ausschnitt aus Unit StdCtrls:
Delphi-Quellcode:
  TListBoxStrings = class(TStrings)
  private
    ListBox: TCustomListBox;
  protected
    procedure Put(Index: Integer; const S: string); override;
    function Get(Index: Integer): string; override;
Die Methoden Get und Put sind um Welten langsamer als TStringList.Get/Put.
Da nutzt auch BeginUpdate nicht viel!!

Also geht der WorkAround so:
Alle Items auf ein TStringList-Objekt kopieren, auf dieser StringListe arbeiten und am Ende zurückkopieren.
Delphi-Quellcode:
liste := TStringList.Create;
liste.Assign(ListBox1.Items);

// auf Liste arbeiten
....

// und zurück
ListBox1.Items := liste;
liste.Free;



Ich habs leider schon gelöscht, ich hatte schon mal dieses Programm auf


meineliste := TStringList.Create; ............

Da hatte ich die Listbox nur och zur Anzeige benutzt und die Komplette Berechnung auf meineListe umgestellt hatte aber nicht wirklich was gebracht.
  Mit Zitat antworten Zitat