Problème de curseur dans un TImage

Résolu
cs_Enos Messages postés 8 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 11 septembre 2020 - 6 déc. 2012 à 19:01
cs_Enos Messages postés 8 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 11 septembre 2020 - 7 déc. 2012 à 15:18
Bonjours à tous!
Je trouve habituellement les réponses à mes questions dans les sources mais la
je n' ai rien trouvé !

Mon problème est le suivant :

Je voudrais changer le curseur dans un TImage de la manière suivante =>

--- passage sur l' image-------------------------------:Curseur 1 ( ex crArrow )
--- passage sur un TRect défini sur l'image------------:Curseur 2 ( ex crCross )
--- Mousedown sur l' image (Pour la déplacer par ex)---:Curseur 3 ( ex crHandPoint )
--- Mousedown sur un TRect défini sur l'image----------:Curseur 4 ( ex crNo)

Voila, deux curseurs pas de problème mais plus de 2 j'ai des choses aléatoires ou bien
le curseur par défaut uniquement !!!


j' ai essayé de faire un bricolage en mettant une variable qui prends la valeur de 1..4
que je reprend dans une procedure mais ça ne fonctionne pas !


si quelqu'un a une piste je suis preneur !

Enos

6 réponses

cs_Enos Messages postés 8 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 11 septembre 2020
7 déc. 2012 à 15:18
Merci Caribensila,
c' est exactement ça que je cherchais à faire

Par contre ssLeft in Shift je ne connais pas du tout, du coup je vais allez voir comment ça fonctionne !

" c'est ça qui est bien quand on ne connait rien, on ne peut qu' apprendre !!! "


Enos
3
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
6 déc. 2012 à 20:04
Salut,

Je ne vois pas de difficulté particulière.
Quelque chose comme ça :
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
  if (X>100) and (X<150) then Screen.Cursor:= crCross else Screen.Cursor:= crArrow;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer);
begin
  if (X>100) and (X<150) then Screen.Cursor:= crNo else Screen.Cursor:= crHandPoint;
end;
0
cs_Enos Messages postés 8 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 11 septembre 2020
6 déc. 2012 à 20:19
Vu comme çà rien de compliquer effectivement mais il y à un mais !!!

Quand tu fais ça si tu a mousedown ET mousemove tu ne conserve pas le curseur mouse down !

et comme disait Napoléon ' La ça se Corse !'

Enos
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
7 déc. 2012 à 10:17
Ah ouais.
Mais c'est pas non plus la Bérézina.
Essaie ça :

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if ssLeft in Shift
    then if (X>100) and (X<150) then Screen.Cursor := crNo else Screen.Cursor := crHandPoint
    else if (X>100) and (X<150) then Screen.Cursor := crCross else Screen.Cursor := crArrow;
end;
0

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

Posez votre question
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
7 déc. 2012 à 12:51
t'es bon Cari quand même
(surtout en histoire ! (humour))

Dubois77
0
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
7 déc. 2012 à 12:53
je voulais dire : même en histoire!

Dubois77
0
Rejoignez-nous