[C++ Builder] ListBox + OnChange event + WINAMP !!!

ListBox + OnChange event + WINAMP !!! [C++ Builder] - C++ - Programmation

Marsh Posté le 26-09-2002 à 15:10:43    

Il existe pas [:dawa]
 
Je fais comment alors ?


Message édité par godbout le 27-09-2002 à 11:28:13

---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 15:10:43   

Reply

Marsh Posté le 26-09-2002 à 15:11:56    

:heink: Par ce que ça sert pas sur une list box. Qu'est ce que tu veux faire?


---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 15:15:04    

Il faut utiliser une listview connard :sarcastic:
 
edit: grillaid par letoII :mad:


Message édité par godbout le 26-09-2002 à 15:15:15

---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 15:16:19    

LetoII a écrit a écrit :

 :heink: Par ce que ça sert pas sur une list box. Qu'est ce que tu veux faire?




En fait je voulais catcher le moment ou tu changes le contenu de la listbox.
Par exemple j'ai un bouton add et remove pour gerer les elements de la liste, et je voulais griser remove lorsque le contenu de la liste est vide.


---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 15:18:57    

Godbout a écrit a écrit :

 
En fait je voulais catcher le moment ou tu changes le contenu de la listbox.
Par exemple j'ai un bouton add et remove pour gerer les elements de la liste, et je voulais griser remove lorsque le contenu de la liste est vide.




 
Ben faut gérer ça dans les méthode qui ajoute/supprime des éléments. T'as pas besoin de OnChange


---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 15:22:42    

LetoII a écrit a écrit :

 
 
Ben faut gérer ça dans les méthode qui ajoute/supprime des éléments. T'as pas besoin de OnChange




Euh ben ca me pose un pb quand meme :/
J'ai essaye de modifier mes fonctions de mise a jour de l'etat des boutons, mais le pb c'est que quand tu ajoutes un item a la listbox par ex, et que tu checkes juste apres si il existe un item, et bien la fonction te renvoie -1, tant que t'es pas sorti de l'event (dans le cas la c'etait onclick)
Dans visual tu pouvais gerer ca avec les messages windows (LVN_ITEMCHANGED).


---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 15:25:51    

Godbout a écrit a écrit :

 
Euh ben ca me pose un pb quand meme :/
J'ai essaye de modifier mes fonctions de mise a jour de l'etat des boutons, mais le pb c'est que quand tu ajoutes un item a la listbox par ex, et que tu checkes juste apres si il existe un item, et bien la fonction te renvoie -1, tant que t'es pas sorti de l'event (dans le cas la c'etait onclick)
Dans visual tu pouvais gerer ca avec les messages windows (LVN_ITEMCHANGED).




 
C pas pour être embétant, mais si tu ajoute un élément est-ce que ça veut pas dire, par hazard, que ta lsite n'est pas vide?


Message édité par LetoII le 26-09-2002 à 15:26:01

---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 15:34:03    

LetoII a écrit a écrit :

 
 
C pas pour être embétant, mais si tu ajoute un élément est-ce que ça veut pas dire, par hazard, que ta lsite n'est pas vide?




Si, mais alors ca me fait eclater mes fonctions pour mettre des petits bouts de code a droite a gauche, c'est pas que j'ai pas envie de le faire, c'est que je pense qu'il y a quand meme un moyen plus rapide. (en plus ca va pas aller pour quand je vais deleter le dernier element de la liste).
Enfin bon te derange pas, je vais voir ce que je peux faire avec une listview.


---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 15:36:35    

J'ai l'impression que tu te complique la vie pour rien.


Message édité par LetoII le 26-09-2002 à 15:36:44

---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 15:45:11    

je crois que ca a toujours ete mon cas effectivement :D
je cherche toujours a faire des trucs qui sont pas possible.


---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 15:45:11   

Reply

Marsh Posté le 26-09-2002 à 15:48:12    

Ce que tu veux faire est possible, masi j'ai l'impressino que tu t'y prend pas de la façon la plus simple, stout :D


---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 15:52:25    

ouais mais j'ai l'impression que c'est la facon la plus propre ;)
Et en fait niveau code apres ca me parait bcp plus propre et bcp plus simple. De toute facon j'experimente, je fais des conneries pour l'instant, histoire de voir comment tout ca fonctionne.
Merci du coup de main ;)


---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 16:45:46    

pour la TListBox c'est on OnClick qui représente le changement de sélection
Et très étrangement un changement au clavier déclanche un OnClick, contrairement à celui des ListView/TreeView (bon ça se base sur les messages Windows donc je suppose que c'est à cause de ça)
 
Si tu veux un changement de contenu, bhen y a a pas :D


Message édité par antp le 26-09-2002 à 16:47:24

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-09-2002 à 16:49:29    

Godbout a écrit a écrit :

 
J'ai essaye de modifier mes fonctions de mise a jour de l'etat des boutons, mais le pb c'est que quand tu ajoutes un item a la listbox par ex, et que tu checkes juste apres si il existe un item, et bien la fonction te renvoie -1, tant que t'es pas sorti de l'event (dans le cas la c'etait onclick)
Dans visual tu pouvais gerer ca avec les messages windows (LVN_ITEMCHANGED).




 
Application->ProcessMessages();
 
vu qu'il envoie un message à la listbox (je suppose) pour l'ajout d'item, le message est pas toujours traité instantanément.
Ici tu peux aussi gérer les messages, mais je sais pas comment on fait en C++Builder. En Delphi faut faire une procédure que l'on défini comme interceptrice d'un certain message, mais c'est en utilisant un mot-clé du Pascal ("message" ) donc je connais pas l'équivalent en Builder :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-09-2002 à 16:51:46    

antp a écrit a écrit :

 
 
Application->ProcessMessages();
 
vu qu'il envoie un message à la listbox (je suppose) pour l'ajout d'item, le message est pas toujours traité instantanément.
Ici tu peux aussi gérer les messages, mais je sais pas comment on fait en C++Builder. En Delphi faut faire une procédure que l'on défini comme interceptrice d'un certain message, mais c'est en utilisant un mot-clé du Pascal ("message" ) donc je connais pas l'équivalent en Builder :/




 
Le plus simple c un clic droit sur la classe dans l'explorateur, nouvelle méthode, gestionnaire de message (la case à cocher). Et l'IDE te rajoute tout ce qu'il faut.


---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 16:54:43    

antp a écrit a écrit :

Si tu veux un changement de contenu, bhen y a a pas :D




ok :D


---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 16:55:11    

LetoII a écrit a écrit :

 
 
Le plus simple c un clic droit sur la classe dans l'explorateur, nouvelle méthode, gestionnaire de message (la case à cocher). Et l'IDE te rajoute tout ce qu'il faut.




 
ha bhen j'aurai découvert un truc :D
 
y a pas ce machin en Delphi
les gens qui programme en Pascal savent rajouter eux-même une interception de message :o :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-09-2002 à 16:55:24    

LetoII a écrit a écrit :

 
 
Le plus simple c un clic droit sur la classe dans l'explorateur, nouvelle méthode, gestionnaire de message (la case à cocher). Et l'IDE te rajoute tout ce qu'il faut.




ah ben voila !
J'vais aller y jeter un oeil. (enfin avant je termine de me battre avec ma listview, plus qu'a delete la selection et c'est bon [:youpi])


---------------
Super.
Reply

Marsh Posté le 26-09-2002 à 16:57:25    

antp a écrit a écrit :

 
 
ha bhen j'aurai découvert un truc :D
 
y a pas ce machin en Delphi
les gens qui programme en Pascal savent rajouter eux-même une interception de message :o :D




 
Je sais aussi le faire à la main ;)


---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 16:57:35    

ouais enfin les interceptions de messages ça ne marche que dans la définition de la classe.
donc que ce soit en Builder ou en Delphi il faut dériver le TListBox il me semble...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-09-2002 à 17:02:19    

antp a écrit a écrit :

ouais enfin les interceptions de messages ça ne marche que dans la définition de la classe.
donc que ce soit en Builder ou en Delphi il faut dériver le TListBox il me semble...




 
 :non:  
 
Suffit de rajouter une méthode à la classe de la fenêtre qui contient la listbox
 
Edit: en c++ en tout cas


Message édité par LetoII le 26-09-2002 à 17:02:45

---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 17:04:07    

ha ? possible, j'ai jamais testé :D  
les rares messages que j'ai rajoutés étaient relatifs à la fenêtre ou à l'application


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-09-2002 à 17:06:57    

antp a écrit a écrit :

ha ? possible, j'ai jamais testé :D  
les rares messages que j'ai rajoutés étaient relatifs à la fenêtre ou à l'application



ben en fait c l'appli qui reçoit tous les message et qui les dispach après vers chaque composant il me semble.


---------------
Le Tyran
Reply

Marsh Posté le 26-09-2002 à 17:15:39    

ouais c'est logique...  
enfin je me disais que peut-être la fenêtre ne recevait que les messages relatifs à son handle...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-09-2002 à 11:28:48    

J'me demandais pkoi j'avais pas de tooltip dans C++ Builder et en fait quand y winamp qui tourne en fond il arrive pas a les afficher [:rofl][:rofl][:rofl]


---------------
Super.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed