J'ai proposé que JMP traite les éléments d'affichage de la même manière que tous les autres frameworks d'interface graphique - ne redessinez aucun élément à moins que le contenu n'ait changé ou qu'une méthode de redessinage (ou inval) spécifique ne soit invoquée.
Plus précisément, peut-il y avoir s'il vous plaît être un moyen d'empêcher les cadres de redessiner le contenu (cela inclut de redessiner tous les points de données et de réexécuter tout script joint) chaque fois qu'une fenêtre défile ?Comme sérieusement, dessinez une fois et gardez le bitmap (ou pixmap) persistant sauf si la boîte a été modifiée (changement de taille / changement dt RowState / méthode inval)
C'est un incroyablement extrême la productivité tue lors du défilement de graphiques comportant plusieurs milliers de points ou de scripts joints complexes.La méthode actuelle de "redessiner à chaque occasion possible, quoi qu'il arrive" est extrêmement déconcertante.
Voici un exemple - le script joint s'imprime simplement dans le journal, mais le défilement des graphiques montre comment il s'exécute constamment à chaque fois que la boîte de défilement est mise à jour (ne propagez pas la méthode <
New Window( "Test",
vlb = V List Box()
);
::global function = Function( {},
Print( 1 );
);
For( i = 1, i <= 20, i++,
vlb << Append(
Graph Box(
Frame Size( 200, 200 ),
X Scale( -100, 100 ),
Y Scale( -100, 100 ),
::global function
)
)
)