cyril76140
Messages postés18Date d'inscriptionmardi 21 juin 2005StatutMembreDernière intervention11 mai 2012
-
17 juin 2008 à 14:49
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 2010
-
17 juin 2008 à 21:54
Bonjour, je souhaiterai faire une interface graphique. plus simplement je voudrai juste qu'un cercle ( fait avec shape) soit tranparent, sans bord, et que le bord devienne noir losrque la souris passe au dessus... (est ce clair ? lol parce que je m'explique comme un manche)
j'ai essaye en vain de crée ce code mais il ne fonctionne pas:
mon code:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single )
If Point(X, Y) = Shape1.BackColor Then
'Shape1.BackStyle = 0
Shape1.BorderStyle = 1
Else
'Shape1.BackStyle = 0
Shape1.BorderStyle = 0
End If
End Sub
Quelqu'un pourrais t'il m'aider a resoudre mon leger probleme
merci d'avance
Cyril
Supra3000
Messages postés159Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 8 janvier 20102 17 juin 2008 à 17:44
Je ne connais pas bien shape mais jai une autre solution plus rapide :
1 - Trouver 2 images de cercle (*.gif pour pouvoir mettre l'arriere transparent au pire met le background autour de ton cercle de la meme couleur que ton arriere plan)
2 - Tu met 2 picturebox 1 par dessus l'autre
3 - tu code l'évenement onMouseOver() . Exemple
if ....
picturebox1.visible=false
picturebox2.visible=true
else
picturebox1.visible=true
picturebox2.visible=false
end if
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 17 juin 2008 à 21:40
Est-ce que tu as modifier la couleur du background ou la couleur du FillColor
si c'est le fillcolor tu deverais alors utilisé ceci :
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single )
If Point(X, Y) = Shape1. FillColor Then
'Shape1.BackStyle = 0
Shape1.BorderStyle = 1
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 17 juin 2008 à 21:54
Ah je viens de relire ta description... pis si ton shape est tranparent ... tu peux pas utilisé point(x,y) lolllolollll
Point(x,y) retourne la couleur du point situé en x, y mais si c'est transparent.... ca revien a la meme couleur que le fond de ta form....
Tu peux toujours utilisé ce code:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With Shape1
If X >= .Left And X <= (.Left + .Width) And Y >= .Top And Y <= (.Top + .Height) Then
.BorderStyle = 1
Else
.BorderStyle = 0
End If
End With
End Sub
Mais comme un control est rectangulaire, carré ou linéaire.... ton cercle va avoir la bordure meme si la souris n'est pas directement a l'intérieur du cercle.
Donc je te recommande la solution de supra3000, si non tu peux peut-etre utiliser 8,10,12,16,... points pour valider que tu est a linterieur du cercle...