Bonjour,
Voici mon problème :
Je génère dynamiquement un ensemble de panel de manière a représenter un grille horaire. Est associé a l'évènement onclick sur le panel, une methode changant la couleur du panel. Idéalement, il serait bien de pouvoir cliquer sur un panel, laisser le bouton de la souris enfoncé et descendre le curseur, colorant par la meme occasion les panels survolés.
Je cherche donc la manière d'obtenir ce résultat.
J'ai essayé d y parvenir via l'event OnMouseMove mais comme son nom l'indique cet event se produit a chaque fois que la souris bouge au dessus du panel donc ca ne m'arrange pas, le panel changant constamment de couleur. En plus si je teste pour voir si la touche de la souris est pressée, la méthode associée a l'event ( changement de couleur ) ne se produis que sur le panel ou a été effectué le clique, pas sur celui que l'on est en train de survoler.
lors de la generation des panels :
MonPanel.OnMouseMove := MonSurvolPanel;
Plus bas, définition de la métode survol panel
1 2 3 4 5 6 7 8 9 10 11 12
|
procedure TCoursFrm.Label4MouseEnter(Sender: TObject);
begin
If (GetAsyncKeyState(VK_LBUTTON)And $8000)<>0 then
begin
if(label4.Caption<>'coucou')then
label4.Caption:='coucou'
else
label4.Caption:='c''est nous';
end;
end; |
If (GetAsyncKeyState(VK_LBUTTON)And $8000)<>0
vérifie que le bouton de la souris est enfoncé ( voir http://delphi.developpez.com/faq/?pa...s#testertouche )
Parrallèlement j'ai decouvert l'évènement OnMouseEnter sur les label qui correspond bien au comportement recherché ( mais qui lui aussi, a du mal quand je verifie que le bouton est enfoncé )
Pourriez vous m'aiguiller vers une solution à mon problème?
Merci d'avance.
Seb
P.S : le titre du post est un peu nul, désolé
Partager