was macht eigentlich ein self.l.invalidate()?
list invalidate
-
-
Invalidate() ist sowas wie ein refresh, falls die Anzeige nicht aktualisiert wird.
In diesem Zusammenhang hab ich das zumindest immer genutzt. -
tja, aber was wird da refreshed?
wird z.b. die self.l.setBuildFunc aufgerufen? (also die function, die da gesetzt ist) -
Da geht es meist um irgendwelche Listen in einem Screen.
Dazu müsste man aber den Gesamtcode sehen. -
ja, es geht um eine liste... die frage ist, ob da nur die vorhandenen daten der list in der anzeige refreshed werden oder ob auch daten ueber die build funktion nachgeladen werden.
ich vermute, dass die build funktion nicht aufgerufen wird, sondern nur die anzeige refreshed wird. -
Ich hab das bisher als "refresh" gesehen, wo die Liste nur "neu gezeichnet" wird.
Veränderte Daten werden ja nur bei ".setList(list)" verarbeitet.Ob eine function aufgerufen wird oder nicht, kann man ganz einfach mit einem "print …" rausfinden
-
Probiers doch aus. Mach ein print in deine buildFunc und dann leg eine Funktion auf eine Taste, die ein invalidate macht.
Ich hätte gesagt, dass buildFunc nicht aufgerufen wird.
-
es gibt dann auch noch self.l.setList(alist), was auch die liste refreshed...
-
Ich hätte gesagt, dass buildFunc nicht aufgerufen wird.
habe nochmal drueber nachgedacht und komme zum schluss, dass die build func aufgerufen werden muesste, sonst macht ein refresh kaum sinn.
aber ich probiere es mal aus. -
invalidate() zeichnet die gui-component neu.
Und natürlich wird, falls Du eine eListbox mit buildfunc hast, diese Methode dann aufgerufen. Die wird immer aufgerufen, um das entsprechende Row-Element zu zeichnen, dafür ist sie ja daEin invalidate() oder invalidate(row) macht Sinn, wenn Du List-Elemente gezielt veränderst oder löschst, ohne dabei setList aufzurufen.