Tester la souris dans une zone de forme carrée ou rectangle

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Canva avec forme personnalisable

Message par GallyHC »

Bonjour,

Comme dit Ar-S, dans ta procedure "Dessine_Grille()" >

Code : Tout sélectionner

  For i=71 To 698 Step 33
    LineXY(3, i, 794, i, RGB(256,256,256))
  Next i
  For i=3 To 795 Step 33
    LineXY(i, 71, i, 698, RGB(256,256,256))
  Next i
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Canva avec forme personnalisable

Message par Zorro »

GallyHC a écrit : For i=71 To 698 Step 33
LineXY(3, i, 794, i, RGB(256,256,256))
Next i
pas la peine de lui ajouter des erreurs non plus :roll: :lol:

on peut faire encore plus court (une seule boucle ) (de pref sur des carreaux carrés )

Code : Tout sélectionner

Procedure Grille(taille,larg,haut)
;By Zorro
;taille=taille d'un carreau
;larg =largeur de l'ecran ou de la zone a dessiner
; haut = hauteur de l'ecran ou de la zone a dessiner
		;******************
		nb=(haut/taille)*taille
		For i=0 To nb		
				LineXY(0, i, larg, i, RGB(255,255,255))		
				LineXY(i, 0, i,haut, RGB(255,255,255))
				i=i+taille-1
		Next i
		; *********************
Endprocedure

exemple en condition :

Code : Tout sélectionner

#window = 0
#Width = 600
#Height = 600

Declare grille(taille,larg,haut)



Enumeration
		#Panel
		#Cont
		#Button
EndEnumeration

;- Initialisation de DirectX
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
		MessageRequester("Erreur", "Impossible d'initialiser DirectX", 0)
		CloseWindow(#window) : End
EndIf


;- Ouverture de la fenêtre et de l'écran
hwnd = OpenWindow(#window, 0, 0,  #Width, #Height, "",#PB_Window_TitleBar |#PB_Window_SystemMenu  )

ScrollAreaGadget(#Panel,10, 10,#Width, #Height, 1024-20, 768-20, 30)
hCont = ContainerGadget(#Cont,10,10,#Width-20, #Height-20,#PB_Container_Double)
OpenWindowedScreen(hCont, 0, 0, #Width, #Height, 0, 0, 0)




Repeat
		
		ExamineMouse()  ; on demande a purebasic de surveiller les event de souris !
		ExamineKeyboard() ; on demande a purebasic de surveiller les event de clavier!
		evnt= WaitWindowEvent(2)	
		
		Select    evnt
				
		Case #PB_Event_CloseWindow 
				End 
		EndSelect
		
		StartDrawing(ScreenOutput())
				DrawText(10, 10, "touche ESC pour quitter" ,RGB(255,255,0),RGB(0,0,0))
				Grille(33,#Width,#Height)
		StopDrawing()
		
		FlipBuffers() 
		
		
		
		
Until KeyboardPushed(#PB_Key_Escape)



Procedure Grille(taille,larg,haut)
;By Zorro
;taille=taille d'un carreau
;larg =largeur de l'ecran ou de la zone a dessiner
; haut = hauteur de l'ecran ou de la zone a dessiner
		;******************
		nb=(haut/taille)*taille
		For i=0 To nb		
				LineXY(0, i, larg, i, RGB(255,255,255))		
				LineXY(i, 0, i,haut, RGB(255,255,255))
				i=i+taille-1
		Next i
		; *********************
Endprocedure

;EPb


Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Canva avec forme personnalisable

Message par Ar-S »

Et ne pas oublier que PB connait maintenant quelques constantes de couleurs, dont #White

Tu peux remplacer RGB(255,255,255) par #White ou en hexa (en BGR pas RGB!) par $FFFFFF
Avec l'habitude ça reste plus simple que de taper des virgules et parenthèses :wink:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Canva avec forme personnalisable

Message par Marc56 »

Sans oublier qu'en utilisant une valeur numérique ou une constante tu libères le système d'un calcul.

:wink:
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Tester la souris dans une zone de forme carrée ou rectan

Message par GallyHC »

@Zorro > je n'ajoute pas une erreur, je le reproduit car copier-coller de son code et j'avoues que je n'ai pas regarder cela. La prochaine fois je regarderais de plus près ^^ avant de recopier.

GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
PCPixMusic
Messages : 106
Inscription : ven. 06/janv./2017 9:50

Re: Tester la souris dans une zone de forme carrée ou rectan

Message par PCPixMusic »

Bonjour,

Merci beaucoup à tous. :mrgreen:

Entre temps j'avais résolu les problèmes avec la grille en fessant mes for Next et placer les constantes #White et #Black.Il me semble que la version Linux de PureBasic 5.60 connais ces constantes (ça ne marchait pas avec la version 5.42 sous Linux). Comme je fais du multi-boot, ça pose parfois problème.

[Résolu] et Falsam Il a déplacé mes messages.
Répondre