Utilisation du bouton SCROLLING de la souris

cs_bigmak Messages postés 6 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 27 janvier 2006 - 15 janv. 2006 à 09:27
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 - 12 juin 2006 à 11:16
Bonjour,

Dans une fenêtre FORM avec un SCROLLBOX intégré, on doit cliquer sur la barre pour descendre ou monter. Comment faire pour pouvoir utiliser les touchers PAGE-DOWN et PAGE-UP du clavier ainsi que le bouton SCROLLING de la souris comme dans une fenêtre de navigation normale ?

Merci de votre aide.

5 réponses

DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
15 janv. 2006 à 10:12
PageUp/down, je sais pas, pour la molette tu utilises l'evenement FormMouseWheel de ta Form

procedure TForm.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

et la valeur qui t'interresse est WheelDelta, qui vaut +/- 120 par defaut dans un environnement zindoz. Donc pour créer des mvts de 1 unité utilise "WheelDelta div 120"

gnh !
0
cs_bigmak Messages postés 6 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 27 janvier 2006
15 janv. 2006 à 11:05
Merci pour ta réponse. Mais où puis-je trouver l'événement FormMouseWhell car je ne le trouve pas dans l'inspecteur d'objets de la Form.
Merci de ton aide.
PS : j'utilise DELPHI 7 et je suis assez inexpérimenté.
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
15 janv. 2006 à 14:29
inspecteur d'objets > evenements > OnMouseWheel, OnMouseWheelDown, OnMouseWheelUp

astuce pour la TScrollBox :

mettre les propriétés HorzScrollBar.Tracking et VertScrollBar.Tracking a true

La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
0
cs_bigmak Messages postés 6 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 27 janvier 2006
15 janv. 2006 à 15:10
Il faut mettre quoi entre Begin et end; ?
J'ai déjà mis les propriétés HorzScrollBar.Tracking et VertScrollBar.Tracking à True et ça ne fonctionne toujours pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
12 juin 2006 à 11:16
Voilou...

procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
 SendMessage(Handle,WM_VScroll,SB_LINEDOWN,0);
end;

procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
 SendMessage(Handle,WM_VScroll,SB_LINEUP,0);
end;

Attention, l'affichage foire un peu quand une listbox (avec scrollbar verticale) a le focus et qu'on fait défiler la form...

@+
Nico {www.ni69.info}


N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
0
Rejoignez-nous