Regle a pixels pour faciliter le dessin

Programmation d'applications complexes
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Regle a pixels pour faciliter le dessin

Message par MLD »

Bonjour a tous
J'ai repris un ancien code vieux de 10 ans qui ne fonctionne plus avec PB 5.70 et refait ceci.
Je me sert régulièrement de ce petit outil pratique pour le placement des gadgets.

Code : Tout sélectionner

;///////////////////////////////
; Regle a pixels v2 
; PB 5.70 LTS x86
; MLD le 29/03/2019
;///////////////////////////////
;Arrêt par clic droit de la souris sur la règle
;Numérotations éléments
 #fen = 1:#Button_stop = 2:#text = 3:#trackbar = 5
Global Largeur = 405

Procedure myCallback(WindowID, Message, wParam, lParam)
  Result = #PB_ProcessPureBasicEvents
  Select Message
  Case #WM_CTLCOLORSTATIC
    Select lParam
    Case GadgetID(5)
      SetBkMode_(wParam,#TRANSPARENT)
      Result = CreateSolidBrush_($FFFFFF)
    EndSelect
  EndSelect
  ProcedureReturn Result
EndProcedure

Procedure Rgl()
    Protected  i.i,x.i,w.i
    UpdateWindow_(WindowID(1))
    W = 0:x = 0
    StartDrawing(WindowOutput(1))
    DrawingFont(FontID(1))
    For i=0 To WindowWidth(1) 
     If i%20 = 0
      Line(x,0,1,10,$0000FF);vingtaine haut
      DrawText(x-2,12,Str(x),$0,GetWindowColor( 1));chiffres du haut 
      Line(x,WindowHeight(1)-1,1,-10,$0000FF);vingtaine bas
      DrawText(x-2,WindowHeight(1)-20,Str(x),$0,GetWindowColor(1)) ;chiffres du bas
     ElseIf i%10 = 0
      Line (x,0,1,5,$CD0000);dizaine haut
      Line(x,WindowHeight(1)-1,1,-5,$CD0000);dizaine bas
     EndIf
     x+1
    Next
    x = 30
    For i=0 To WindowHeight(1) 
     If i%20 = 0
      Line(1,x,10,1,$0000FF);vingtaine gauche
      DrawText(15,x-5,Str(x-30),$0,$FFFFFF);chiffres gauche 
      Line(WindowWidth(1)-1,x,-10,1,$0000FF);vingtaine droit
      DrawText(WindowWidth(1)-20,x-5,Str(x-30),$0,$FFFFFF);chifres droit 
     ElseIf i%10 = 0
      Line (1,x,5,1,$CD0000);dizaine gauche
      Line(WindowWidth(1)-1,x,-5,1,$CD0000);dizaine droit
     EndIf
     x+1
     If x > WindowHeight(1)-30
      Break
     EndIf
    Next
    StopDrawing()
EndProcedure

;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
OpenWindow(1, 450, 200, Largeur, 100, "",#PB_Window_BorderLess|#WS_THICKFRAME);|#WS_BORDER
SmartWindowRefresh(1,1)
StickyWindow(1,1)
HideWindow(1,0)
SetWindowColor(1,$FFFFFF)
SetWindowLong_(WindowID(1), #GWL_EXSTYLE, GetWindowLong_(WindowID(1), #GWL_EXSTYLE) | #WS_EX_LAYERED);transparence:
SetLayeredWindowAttributes_(WindowID(1), 0,180, #LWA_ALPHA)
TextGadget(3, 50, 30, 70, 20, "Transparence")
SetGadgetColor(3,#PB_Gadget_BackColor,$FFFFFF)
TrackBarGadget(5, 50, 45, 150, 30, 100, 255)
SetGadgetColor(5,#PB_Gadget_BackColor,$FFFFFF)
SetGadgetState(5,180)
SetWindowCallback(@myCallback()) 
LoadFont(1, "Noto Sans Condensed", 7,#PB_Font_HighQuality) 
SetActiveGadget(5):SetActiveGadget(3)
Rgl()
;¤¤¤¤¤¤¤ Boucle générale
Repeat
  Event = WaitWindowEvent()
  If Event =  #WM_RBUTTONDOWN
   Delay(250) 
   CloseWindow(1)
   End
  EndIf 
  If Event =  #WM_LBUTTONDOWN 
   SendMessage_(WindowID(1), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) 
  EndIf 
  If Event = #PB_Event_SizeWindow;#WM_SIZE
    InvalidateRect_(WindowID(1), 0, 1)
    Rgl()
  EndIf 
  If Event = #PB_Event_Gadget
   Select EventGadget()
     Case 5
      SetLayeredWindowAttributes_(WindowID(1), 0, GetGadgetState(5), #LWA_ALPHA)
      SetActiveGadget(3)
   EndSelect
  EndIf     
ForEver
Dernière modification par MLD le lun. 01/avr./2019 17:00, modifié 1 fois.
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: Regle a pixels pour faciliter le dessin

Message par SPH »

Merci, ca peux etre utile :idea:
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Regle a pixels pour faciliter le dessin

Message par Micoute »

Merci MLD pour ce merveilleux partage, quelquefois il suffit d'une petite idée pour changer la vie des gens.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Regle a pixels pour faciliter le dessin

Message par MLD »

Merci a SPH et Micoute
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Regle a pixels pour faciliter le dessin

Message par Ar-S »

Pas mal du tout merci.
Un petit basculement cm/pixel serait top ;)
~~~~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
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Regle a pixels pour faciliter le dessin

Message par venom »

Petit utilitaire qui a son côté pratique.
Merci du partage.






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Regle a pixels pour faciliter le dessin

Message par MLD »

Merci a ar-S et venon
Ar-s. j'avais cela dans l'ancienne version. Je l'ai viré. Je ne me suis jamais servis des Cms en 10 ans de temps pour dessiner sur un écran.
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Regle a pixels pour faciliter le dessin

Message par Ar-S »

Moi ça m'a servi plus d'une fois :D pour me caler sur du A4 par exemple.
~~~~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
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Regle a pixels pour faciliter le dessin

Message par MLD »

Maintenant ,et pour répondre aux remarques de certains hors forum J'ai supprimé le bouton stop.
Pour fermer la règle, un clic avec le bouton droit de la souris sur celle ci.
Le code est modifié dans le premier poste.
a+
Répondre