Quel élément d'interface est le plus adapté dans ce cas

Bonjour,
J’ai créé une interface permettant de sélectionner des sons ( program change MIDI) d’un module externe . La fenêtre principale est constituée de 128 objets cliquables correspondant aux 128 sons d’une banque. J’ai déjà développé l’appli (version desktop , mac Os) en utilisant des canvas , mais le temps de réponse semble affecté, peut-être cela vient-il de ma gestion du “backdrop” lors des evenements “mouse enter” “mouseup” etc. J’envisage d’utiliser des boutons à la place des cvs. Y a-t-il un autre “rectcontrol” plus adapté?
Merci pour vos conseils

Hi @Bruno_Jacquet

Les contrôles ListBox pourraient être une option?

humm… je ne suis pas très chaud pour utiliser une listbox, ça va me compliquer la vie pour gèrer les “mouseEnter” “mouseUp” + le “cellPaint” etc… pour chaque “cell”…
Mais bon si c’est la solution pour une réactivité optimale lors d’un clic.
Merci pour la suggestion :slight_smile:

Pensez à une sous-classe ListBox que vous utiliserez huit fois (8 Listbox x 16 lignes chacune, car vous manipulerez toujours 128 éléments, n’est-ce pas?)

Il vous suffit donc de mettre la logique des gestionnaires d’événements dans la sous-classe… et voilà! C’est juste une option. :slight_smile:

ok je vais étudier cela.
Merci Javier

Il est un peu surprenant qu’il y ait un ralentissement avec (seulement) 128 canvas.
Il faudrait nous montrer un peu de code…

Bonjour Eric
Si tu penses que 128 cvs n’est pas un problème (128 + une vingtaine d’autres dont 1 dans le backdrop de la fenêtre, en fait) je vais poursuivre dans l’idée des canvas, mais tout reprendre à zéro. Je pourrais voir au fur et à mesure où se situent les problèmes.
Merci pour ton avis.

Tu peux tester avec mon application de DAO, RealCADD, il faut vraiment beaucoup d’objets de dessin visibles pour ralentir l’application (mais ce ne sont pas des canvas).

Finalement j’ai tout refais avec les canvas et ça marche pas mal, mieux en tout cas. Le problème venait d’une mauvaise gestion des “paint event”.