B4J Library [B4X] [XUI] xGauges and xGaugesRect Classes and Libraries

MikeCLX

Member
Licensed User
Longtime User
Works great,
only thing I did different in the 2nd mid scale I implemented was to call them ScaleMid2LimitColor etc instead of ScaleMidLimitColor2. As it made sense when I was doing it as it’s the second mid scale rather than a second color of the first one.

thanks for your great code and efforts it’s very helpful to be able to learn more about b4a from your examples
 

klaus

Expert
Licensed User
Longtime User
The xGauges library has been updated to version 1.8
Added new xGaugesRect library
Added BorderWidth, BorderColor and CorenerRadius properties.
Added ScaleMidLimit2StartPerCent, ScaleMidLimit2SweepPerCent, ScaleMidLimit2Color properties.
Added gradient colors for the limit zones.
Changed setValueMin and setValueMax from Int to Double.
 

sultan87

Active Member
Licensed User
Longtime User
Bonjour Klaus
je voudrais me servir de ces modules pour définir un thermomètre
j'ai chargé les différents modules du pavé 1
je développe en B4A
quand j'exécute je n'ai pas la totalité des exemples affiché dans le pavé 1

les gauges 'Consumption' 'Volt' 'rpm' ne sont pas affichées
est il possible d'utiliser 'Temp Oven' horizontal ou vertical en faisant bouger un curseur pour définir la température demandée avec un pas par exemple de 0.5 °C
Pierre
 

klaus

Expert
Licensed User
Longtime User
Comme l'écran des smartphones est petit, je n'ai pas affiché toutes les possibilités.
est il possible d'utiliser 'Temp Oven' horizontal ou vertical en faisant bouger un curseur pour définir la température demandée avec un pas par exemple de 0.5 °C
Oui, on peut déplacer les deux curseurs avec les doigts, mais leur pas n'est pas défini en interne.

Par-contre tu peux le faire en externe.
Ci-joint un programme démonstrateur.
Avec les boutons tu peux augmenter ou diminuer la valeur du curseur.
J'ai ajouté dans le module xGaugeRect un événement lorsqu'une valeur d'un curseur a changé.
Si tu déplaces le curseur avec un doigt, l'affichage de la valeur est mis à jour.
Dans cet événement, la valeur est arrondie à 0.5.



Testes cette version et si c'est OK je vais mettre à jour officiellement.
 

Attachments

  • GaugesRectTemp.zip
    18.7 KB · Views: 83

sultan87

Active Member
Licensed User
Longtime User
Bonsoir Klaus
Parfait
je voudrais modifier ValMin et ValMax dans le module Main sans toucher au module xGaugesRect
j'ai essayé
Private ValueMin As Double
Private ValueMax As Double
ValueMin = 0
ValueMax = 30
cela ne change rien les limites sont toujours 0 et 100
Pierre
 

klaus

Expert
Licensed User
Longtime User
Il serait plus facile de t'aider si tu mettais ton projet en annexe.
Pour modifier ces valeurs dans Main tu dois le faire comme ci-dessous:

B4X:
    Thermometre.ValueMin = 0
    Thermometre.ValueMax = 30
    Thermometre.HalfTicks = True
    Thermometre.MainTickNumber = 4
    Thermometre.TickText = "0|10|20|30"
    Thermometre.SmallTicksNumber = 10

Tu dois modifier ces valeurs avec le nom de xGauge qui est dans ton cas 'Thermometre'.
Donc ValMin et Val Max:
B4X:
    Thermometre.ValueMin = 0
    Thermometre.ValueMax = 30
Mais, tu dois aussi définir le nombre des marques principales de l'échelle et leur valeur.
Dans ton cas 0, 10, 20, 30, donc 4 et leur valeurs:
B4X:
   Thermometre.MainTickNumber = 4
    Thermometre.TickText = "0|10|20|30"
Et indiquer le nombre de petites marques de l'échelle entre deux marques principales.
B4X:
    Thermometre.SmallTicksNumber = 10

Et ça donnera ceci:


J'ai aussi mis
B4X:
    Thermometre.HalfTicks = True
pour être complet.
Ce n'est pas nécessaire si c'est déjà défini dans le Designer.

Y a-t-il une raison de vouloir changer ces valeurs dans le code et pas dans le Designer ?
 

sultan87

Active Member
Licensed User
Longtime User
Bonsoir Klaus
merci pour la réponse rapide
il n'y a aucune raison de vouloir modifier par ode
je n'avais pas vu que ces propriétés pouvaient être modifiées dans le Designer
je fais les modifs et je vous informe de mes tests
Bonne soirée
Pierre
 

sultan87

Active Member
Licensed User
Longtime User
Bonjour Klaus
je continue mes tests pour affichage d'un thermomètre

je voudrais mettre sur le cadran
de 0 à 18 couleur bleu
de 19 à 23 couleur verte
de 24 à 30 couleur rouge
serait il possible de faire les créneaux en fonction des valeurs plutôt qu'en pourcentage
Pierre
 

sultan87

Active Member
Licensed User
Longtime User
je me réponds
il faut laisser les pourcentages
tout dépend de ce que l'on veut
il suffit de faire des règles de trois
a quoi sert ScaleMidLimit2
peut on afficher un champ texte sous le paramètre GaugeUnit
Pierre
 

klaus

Expert
Licensed User
Longtime User
il suffit de faire des règles de trois
Eh oui.
Quand j'ai écrit cette bibliothèque je pensais que les les pourcentages était plus 'universels' que les valeurs.

a quoi sert ScaleMidLimit2
Il y a 4 zones.
Bas, LowLimit: de 0 et étendue x1%
Milieu bas, MidLimit: départ à x2% et étendue x3%
Milieu haut, MidLimti2: départ à x4% et étendue x5%
Haut, HighLimit: étendue x6% jusqu'à 100%.

peut on afficher un champ texte sous le paramètre GaugeUnit
Non.
Quel genre de texte penses-tu mettre ?

On peut modifier les couleur dans le code avec plusieurs couleurs dégradées :
B4X:
xGauge2.ScaleMidLimitColors = Array As Int(xui.Color_Green, xui.Color_Yellow)
 
Last edited:

sultan87

Active Member
Licensed User
Longtime User
merci Klaus
j'utilise xGauge3 donc afficher la valeur indiqué par l'aiguille dont je change la couleur en fonction de la valeur
 

klaus

Expert
Licensed User
Longtime User
Vu que tu avais parlé de xGaugesRect, j'étais resté sur des affichages rectangulaires.
Concernant les autres, je n'avais jamais pensé mettre encore la valeur numérique sur l'affichage car l'aiguille la montre déjà.
C'est comme les montres, à aiguilles ou à affichage digital.
Avec le variété d'affichages différents ce n'est pas facile de définir l'emplacement idéal pour l'affichage numérique.
Le seul, où ce serait possible est xGauge3.
 

sultan87

Active Member
Licensed User
Longtime User
merci Klaus
effectivement j'étais parti sur xGaugesRect mais je voulais vois ce qu'il était possible de faire avec xGauge3
sur xGaugesRect il y a la propriété CursorValue je ne retrouve pas cette propriété dans xGauge3
je voulais me servir pour modifier la couleur de l'aiguille en fonction de la valeur
Pierre
 

sultan87

Active Member
Licensed User
Longtime User
bonsoir Klaus
j'ai modifié ton projet pour afficher xGauge3
cela fonctionne correctement
ci-joint le projet
j'essaie de l'appliquer à mon projet
en changeant le valeur l'aiguille est toujours positionnée sur 0
je ne comprends pas
faut il obligatoirement utiliser B4XView
pouvez vous m'aider
Pierre
 

Attachments

  • B4XMainPage.bas
    4.1 KB · Views: 72

sultan87

Active Member
Licensed User
Longtime User
Bonsoir Klaus
j'ai zipper mon projet (ci-joint)
parfois l'aiguille change de position en fonction de la température modifiée avec les touche + ou -
parfois elle ne bouge pas elle reste positionné sur 0
je ne comprends pas
pouvez vous m'aider
j'ai mis en commentaire les codes qui ne sont pas nécessaire pour l'exemple
merci d'avance
Pierre
 

sultan87

Active Member
Licensed User
Longtime User
Bonsoir Klaus
mon fichier .zip semble trop gros
comment faire pour que vous puissiez le voir
Pierre
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…