Einzelnen Beitrag anzeigen

Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#27

Re: vorhandenen Index ermitteln

  Alt 24. Nov 2007, 18:15
@ raiguen,

zu #25 geht das?
Delphi-Quellcode:
procedure TForm1.bIndexDeleteClick(Sender: TObject);
var
cnt : integer;
begin
  for cnt := ListBoxIndex.Items.Count -1 downto 0 do
    Table.DeleteIndex(ListBoxIndex.Items[cnt]); // neuen Index löschen
  //--gesammte Listbox auf einen Schlag Löschen
  ListBoxIndex.Items.Clear; <-----------------!!!
  //--internes Array mit den Indexdefinitionen aktualisieren
  Table.IndexDefs.Update;
  //--evtl. Speichern der Definitionen verhindern
  Table.StoreDefs := false;
end;
Es sind zB. 10 Indexe vorhanden und auch zu löschen.
In der Schleife wird der 1 Eintrag gefunden, der dazugehörige Index wird gelöscht. Beim Durchlauf der Schleife wird dann der ges. Inhalt mit ListBoxIndex.Items.Clear; gelöscht. Beim nächsten Durchlauf ist nichts mehr in der Liste, weil vollständig gelöscht.
Es verbleiben also noch 9 von den ursprüngichen 10 Indexen irgendwo im Speicher.
Sehe ich das richtig? Habe das auch nicht getestet.

Die ListBox benutze ich nicht mehr, stattdessen eine StringList und ich glaube, daß das Erstellen der Indexe deutlich schneller geht.
Ansonsten läuft das Teil super und völlig fehlerfrei.

Fritz
Fritz
  Mit Zitat antworten Zitat