[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Elemente einer Listbox schnell aktualisieren

mx
Beiträge gesamt: 161

19. Sep 2012, 10:48
Bewertung:

gelesen: 2656

Beitrag als Lesezeichen
Hallo Martin,

da gibt es doch noch ein paar Möglichkeiten.

Abgesehen davon, dass es sicher elegantere Methoden gibt ein Array zu filtern, hab ich mal einen schnellen Versuch gemacht:

1.
Erst ein Array mit dem Ergebnis füllen und die Liste komplett auf einmal füllen.

2.
Erst die neue Liste zeichnen, dann die alte Liste löschen.


Code
	entry.onChanging = function ()  
{
var temp = this.text;
var tempArray = [];
for (var i = 0; i < array.length; i++)
{
if (array[i].toLowerCase().indexOf (temp) == 0)
tempArray[tempArray.length] = array[i];
}
if (tempArray.length > 0)
list.selection = 0;
tempList = w.add ("listbox", list.bounds, tempArray, {scrolling: true});
w.remove(list);
list = tempList;
}


Damit sieht es zumindest für mich bei bei ca. 1500 Einträgen noch recht flüssig aus.

Viele Grüße
Jo

(Dieser Beitrag wurde von mx am 19. Sep 2012, 10:58 geändert)
Änderungsverlauf:
Beitrag geändert von mx (User) am 19. Sep 2012, 10:58