For PureBasic
Voici un petit module que je fais pour mon usage (règle en mm)
Version 1.1
Les fonctions sont les suivantes:
- Rull::Create(mySize,*Callback,Direction.i=0)
- mySize Largueur ou hauteur suivant la direction
- *Callback La procédure qui sera appelée lors d'une action sur la règle
- Direction .0 Horizontal ; 1 Vertical
- Renvoi l'adresse mémoire de la liste
- SetZoom(IdRull,ZoomFactor.d=1)
- IdRull adresse mémoire de la liste
- ZoomFactor le facteur de zoom (ex: 1 100% 0.5 50%)
- GetPxlWidth(IdRull) retourne la largeur en pxl
- GetPxlHeight(IdRull) retourne la hauteur en pxl
- SetPosition(IdRull,X,Y) modifie la position de la règle
- AddGrid(IdRull,Value,,Color.d,size.d)
- IdRull adresse mémoire de la liste
- Value la valeur ou sera ajouté le taquet en mm
- myData une valeur de votre choix qui sera retournée le taquet est modifié (-1) si pas de modification
- Color la couleur du taquet en RGBA
- size taille du taquet (ex: 0.8,1,1.2)
- Renvoi l'adresse mémoire de la liste
- RemoveGrid(IdRull,IdGrid)
- IdRull l'adresse mémoire de la règle
- IdGrid l'adresse mémoire du taquet
- FreeRull(IdRull) Libère la mémoire en supprimant la règle (à appelé à la fermeture de la fenêtre par exemple)
- IdRull l'adresse mémoire de la règle
- ClearGrid(IdRull) Efface tous les taquets de la règle
- IdRull l'adresse mémoire de la règle
- SetGridValue(IdRull,IdGrid,Value) modifie la valeur d'un taquet
- IdRull l'adresse mémoire de la règle
- IdGrid l'adresse mémoire du taquet
- Value la nouvelle valeur du taquet
La procédure CallBack doit être renseignée comme ceci
Exemple: EventRull(*IdRull,Value,LeftButtonUp.b,myData)
- *IdRull index de la liste
- Value La valeur sélectionnée sur la règle en mm
- LeftButtonUp #True si le bouton gauche de la souris est relâche ou en cas de simple clique
- myData la valeur renseignée avec AddGrid ou -1 si aucune modification
Remarque: Pour zoomer dans le teste maintenez CTRL et molette de la souris