list invalidate

  • Invalidate() ist sowas wie ein refresh, falls die Anzeige nicht aktualisiert wird.
    In diesem Zusammenhang hab ich das zumindest immer genutzt.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • 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 :winking_face:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • 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.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • 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 da :winking_face:


    Ein invalidate() oder invalidate(row) macht Sinn, wenn Du List-Elemente gezielt veränderst oder löschst, ohne dabei setList aufzurufen.