Salut !
Je rédige une appli qui, entre autres, permettra de gérer des fiches de perso pour un jeu de rôle. Pour des raisons n'encombrement de l'interface graphique et d'économie de ressources, j'ai souhaité créer un composant pas lourd qui permet de visualiser et/ou modifier un entier (Score de compétence par exemple).
Je dérive donc un TLabel en TNumericLabel, je lui donne quelques propriétés (Position, Min, Max) et quand on change Position ça change Caption en conséquence. Jusque là ça marche bien.
Là où je n'arrive pas à m'en sortir, c'est pour que ce composant réagisse aux mouvements de la molette de ma souris. Je veux que Position augmente quand je roule vers le haut et qu'elle diminue quand je roule vers le bas.
Je m'attendais à ce qu'un truc tout bête comme ça fonctionne, mais en fait non :
Code :
- function TNumericLabel.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
- begin
- Result := False; // Juste pour éviter le warning.
- inherited DoMouseWheelDown(Shift, MousePos);
- Position := FPosition - 1;
- end;
|
Et même si je mets juste Result à True et que je décrémente Position, sans appeler l'inherited, ça marche pas.
J'ai essayé de capturer CM_MOUSEWHEEL, mais ça fait rien du tout non plus, ça n'a jamais ouvert le MessageDlg que je lui demandais d'ouvrir pour voir si le message était traité.
Je pourrais vous balancer plus de code, mais vu que ya rien qui marche c'est pas très intéressant. Si vous, vous avez une recette qui marche, je suis preneuse !
Je me dis que peut-être ça a un rapport avec le fait que mon composant dérive de TGraphicControl et que ça gère pas certains trucs. Je sais pas.
Vous avez une idée de comment je peux m'en sortir ?
Merci d'avance !
//Edit : correction ortho.
Message édité par Cate Winigan le 20-04-2005 à 21:58:11