cs_yannickt
Messages postés64Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention22 novembre 2011
-
21 sept. 2005 à 08:53
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 2013
-
11 août 2009 à 09:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 11 août 2009 à 09:22
testé sous .Net :
Couleur des Sig ne marche pas, le redimensionnement du control non plus (le fait de passer par un bitmap peut être ?), une erreur lors de la pause sur la form, mais apres il roule.
Code Ex :
Dim i As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'limite min, max et légende
AxUserControl11.setLmt(0, 100, "°C")
'position des Signets
AxUserControl11.setSig(0, 10)
AxUserControl11.setSig(1, 50)
AxUserControl11.setSig(2, 90)
AxUserControl11.loadSig(3, 2) ' reste toujours noir qq soit la valeur ou rouge si aucune valeur de tapé.
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'incrémente la jauge
If i < 100 Then i = i + 2
AxUserControl11.setJau(i)
' fait bouger le signet 4
If i < 50 Then
AxUserControl11.setSig(3, 2 * i)
Else
AxUserControl11.setSig(3, i / 2)
End If
End Sub
Pour ce qui est de l'utilité, cela peu permettre d'afficher plusieurs valeur (grace au signet) sur un seul bargraph. Ex °C,Hygro,Pression. Dommage qu'il soit si vérouillé niveau paramétres (pas possible de l'avoir vertical par exemple)
@++
cs_yannickt
Messages postés64Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention22 novembre 2011 22 sept. 2005 à 23:14
Bon... mon cher PCPT, j'ai ajouté ta fonction, et j'ai commencé à l'intégrer dans un controle qui est somme toutes assez fonctionnel, et j'irais même jusqu'à dire, prêt à l'emploi, mais bon, il demeure que rien n'est parfait et il y a encore de nombreuses choses à finaliser... Merci encore
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 22 sept. 2005 à 19:16
re,
je viens de m'apercevoir d'un petite bétise :
pour l'exemple, il y a 16 couleurs, donc logiquement :
' *- déclaration -*
Const NbColors As Integer = 16
Dim TabColors(NbColors-1) As OLE_COLOR
et bien sûr, le principe de mettre un "Optionnal", c'est d'appeler :
' *- command3 (appel Load Signet) -*
loadSig txtsig 'pas besoin de préciser "0"
'(...)
tout restait correct, mais bon^^
@+
PCPT
cs_yannickt
Messages postés64Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention22 novembre 2011 22 sept. 2005 à 18:58
Hoooo.... franchement t'as de la suite dans les idées, mon cher PCPT... je vais faire les modifications... merci beaucoup pour tes recommendations... j'avais pas pensé à écrire directement sur images! t'es fort! Merci encore...
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 22 sept. 2005 à 12:20
salut,
prise en compte des valeurs négatives, très bien.
j'ai regardé le code d'un peu plus près, voici une petite amélioration possible.
principe : aléatoire sur les couleurs des signets supplémentaires
pratique :
' *- déclaration -*
Const NbColors As Integer = 15
Dim TabColors(NbColors) As OLE_COLOR
'(et Load 1 et 2 sont devenus "loadSig 1, TabColors(14) 'vbBlue"
"loadSig 2, TabColors(9) 'vbRed")
' *- loadSig -*
Public Sub loadSig(sigID As Integer, Optional ByVal Couleur As OLE_COLOR = 0)
'(...)
If Couleur 0 Then Couleur TabColors(Int(NbColors * Rnd))
'(puis tes 2 Load normaux)
modification possibles en ocx:
*éventuellement écrire le texte (pas en label) + pouvoir le placer (right left center) + Font
*choisir couleur de fond (même si j'aime le noir ;))
*pouvoir étirer ou rétrécir, au moins en longueur
*menu contextuel sur le contrôle, mais tout dépend de l'utilité...
*signets personnalisés
toujours pas noté ;)
bon boulot, bonne continuation
++
PCPT
cs_yannickt
Messages postés64Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention22 novembre 2011 22 sept. 2005 à 09:49
Bon... j'ai bûché fort pour sortir cette révision, mais bon, j'espère qu'elle vous plaiera...
cs_yannickt
Messages postés64Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention22 novembre 2011 21 sept. 2005 à 19:38
hehe... je le termine et je te l'envoies personnellement à ton courriel... Pour ce qui est de la nomenclature des contrôles (textbox, commandbutton, etc) il s'agit de contrôles temporaires avec lesquels je test mon code, ils n'y seront plus lorsque le programme sera un contrôle, et pour l'utilité, c'est tout simplement une version améliorée de la barre de progression... juste pas terminé... Merci encore pour ton commentaire.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 21 sept. 2005 à 19:06
he bien, he bien, he bien... mon cher YannickT, en effet, je n'ai pas vu (et ne vois toujours pas) que ce code a été fait en un laps de temps "déterminé", mais si j'avais pensé qu'il était terminé, je n'aurais pas dit qu'il restait du boulot et que j'attendais la suite, mais que c'était un projet incomplet méritant un mauvaise note.
tu demandes des commentaires constructifs et pertinants, je le crois au moins constructif.
pertinant, dire qu'un contrôle nommé est préférable, rien de bien pertinant, mais ce n'est pas ce qui prend le plus de temps dans un projet... (si?)
qu'il soit incomplet n'est pas un problème, c'est justement le but de demander un avis préalable pour l'améliorer....
pour le niveau, pour être honnête, çà me fait une belle jambe. met comme il te plaît. ce qui est certain, c'est que le lecteur qui ne fera que survoler ta source sera encore plus sévère avec un niveau disproportionné
pour l'utilité de ce contrôle, je n'arrive toujours pas à me le représenter.
je répère, contrôle intéressant, effet réussi.
bonne continuation
PCPT
cs_yannickt
Messages postés64Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention22 novembre 2011 21 sept. 2005 à 18:39
he bien, he bien, he bien... je crois mon cher PCPT que tu n'as pas lu ou j'ai écris que ce n'étais effectivement pas complété, qu'il y avait place à amélioration et que ça été fait en 20 mins.... bien entendu, je reçois tes conseils concernant le code (rappel: vite fait) Je n'ai effectivement pas eu le temps de revoir le code, mais la logique complèxe est là et je crois toujours que c'est de niveau initié quoique pour te faire plaisir, j'aie changé le niveau... Pour ce qui est du l'utilité, principalement pour du "monitoring", ce qui serait probablement très utile pour un ingénieur... du reste, le code que vous avez actuellement est une étape dans la conception, les autres sont bien définies dans la description, je travaille actuellement dessus à temps morts...
Je m'excuse de vous avoir livré un fouilli de code, mais c'est une étape "fonctionnelle" de mon projet, Merci de ton commentaire, PCPT.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 21 sept. 2005 à 13:12
salut,
le code est vraiment à revoir.
aucune indentation, des lignes inutiles
ex :
If (nn - (100 / con.Width * niv.Width)) < 1 Then niv.Width = niv.Width + 1: GoTo fin
niv.Width = niv.Width + (nn - (100 / con.Width * niv.Width)): GoTo fin
avec un fin: juste en dessous
le ELSE sert à çà ;)
des OnError partout.... (pas une vrai gestion çà)
la jauge à 0 ou 99 n'est pas correcte
tu n'as pas géré l'erreur du Load(5) si plusieurs fois
bref, bcp de boulot encore.
mais pour ta défense, le résultat est plutôt pas mal, même si j'ai du mal à en voir réellement l'application et l'utilité.
tu devrais également gérer par exemple ces fameux Load par un menu (pour ne pas en ajouter qu'un seul)
régler ce problème de graduation incorrecte
nommer tes contrôles !!!!
pouvoir bouger manuellement les signets (à la souris, drag & drop), çà serait bien plus sympa ;)
je note pas, y'a du boulot.
ah, et si tu ne veux pas trop te faire charpiller, petit conseil, ne laisse pas le code en "initié"
j'attend la suite et une réponse sur "mais pourquoi l'intégrer à un projet" (utilité)
++ bon courage
PCPT
cs_yannickt
Messages postés64Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention22 novembre 2011 21 sept. 2005 à 08:53
Les questions et le commentaires constructifs et pertinents sont les bienvenus!
11 août 2009 à 09:22
Couleur des Sig ne marche pas, le redimensionnement du control non plus (le fait de passer par un bitmap peut être ?), une erreur lors de la pause sur la form, mais apres il roule.
Code Ex :
Dim i As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'limite min, max et légende
AxUserControl11.setLmt(0, 100, "°C")
'position des Signets
AxUserControl11.setSig(0, 10)
AxUserControl11.setSig(1, 50)
AxUserControl11.setSig(2, 90)
AxUserControl11.loadSig(3, 2) ' reste toujours noir qq soit la valeur ou rouge si aucune valeur de tapé.
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'incrémente la jauge
If i < 100 Then i = i + 2
AxUserControl11.setJau(i)
' fait bouger le signet 4
If i < 50 Then
AxUserControl11.setSig(3, 2 * i)
Else
AxUserControl11.setSig(3, i / 2)
End If
End Sub
Pour ce qui est de l'utilité, cela peu permettre d'afficher plusieurs valeur (grace au signet) sur un seul bargraph. Ex °C,Hygro,Pression. Dommage qu'il soit si vérouillé niveau paramétres (pas possible de l'avoir vertical par exemple)
@++
22 sept. 2005 à 23:14
22 sept. 2005 à 19:16
je viens de m'apercevoir d'un petite bétise :
pour l'exemple, il y a 16 couleurs, donc logiquement :
' *- déclaration -*
Const NbColors As Integer = 16
Dim TabColors(NbColors-1) As OLE_COLOR
' *- loadSig -*
(...)...= TabColors(Int((NbColors-1) * Rnd))
et bien sûr, le principe de mettre un "Optionnal", c'est d'appeler :
' *- command3 (appel Load Signet) -*
loadSig txtsig 'pas besoin de préciser "0"
'(...)
tout restait correct, mais bon^^
@+
PCPT
22 sept. 2005 à 18:58
22 sept. 2005 à 12:20
prise en compte des valeurs négatives, très bien.
j'ai regardé le code d'un peu plus près, voici une petite amélioration possible.
principe : aléatoire sur les couleurs des signets supplémentaires
pratique :
' *- déclaration -*
Const NbColors As Integer = 15
Dim TabColors(NbColors) As OLE_COLOR
' *- form Load -*
'(...)
'init tableau couleur aléatoires
TabColors(0) = &HFFFFFF 'blanc
TabColors(1) = &HC0C0C0 'gris
'pâles
TabColors(2) = &HC0C0FF 'rose
TabColors(3) = &HC0E0FF 'saumon
TabColors(4) = &HC0FFFF 'jaune
TabColors(5) = &HC0FFC0 'vert
TabColors(6) = &HFFFFC0 'bleu
TabColors(7) = &HFFC0C0 'violet
TabColors(8) = &HFFC0FF 'mauve
'vifs
TabColors(9) = &HFF& 'rouge
TabColors(10) = &H80FF& 'orange
TabColors(11) = &HFFFF& 'jaune
TabColors(12) = &HFF00& 'vert
TabColors(13) = &HFFFF00 'bleu clair
TabColors(14) = &HFF0000 'bleu foncé
TabColors(15) = &HFF00FF 'magenta
Randomize 'Time pour aléatoire
'(...)
'(et Load 1 et 2 sont devenus "loadSig 1, TabColors(14) 'vbBlue"
"loadSig 2, TabColors(9) 'vbRed")
' *- loadSig -*
Public Sub loadSig(sigID As Integer, Optional ByVal Couleur As OLE_COLOR = 0)
'(...)
If Couleur 0 Then Couleur TabColors(Int(NbColors * Rnd))
'(puis tes 2 Load normaux)
' *- command3 (appel Load Signet) -*
loadSig txtsig, 0
setSig txtsig, txtns
encore du boulot, mais c'est vraiment pas mal ;)
modification possibles en ocx:
*éventuellement écrire le texte (pas en label) + pouvoir le placer (right left center) + Font
*choisir couleur de fond (même si j'aime le noir ;))
*pouvoir étirer ou rétrécir, au moins en longueur
*menu contextuel sur le contrôle, mais tout dépend de l'utilité...
*signets personnalisés
toujours pas noté ;)
bon boulot, bonne continuation
++
PCPT
22 sept. 2005 à 09:49
21 sept. 2005 à 19:38
21 sept. 2005 à 19:06
tu demandes des commentaires constructifs et pertinants, je le crois au moins constructif.
pertinant, dire qu'un contrôle nommé est préférable, rien de bien pertinant, mais ce n'est pas ce qui prend le plus de temps dans un projet... (si?)
qu'il soit incomplet n'est pas un problème, c'est justement le but de demander un avis préalable pour l'améliorer....
pour le niveau, pour être honnête, çà me fait une belle jambe. met comme il te plaît. ce qui est certain, c'est que le lecteur qui ne fera que survoler ta source sera encore plus sévère avec un niveau disproportionné
pour l'utilité de ce contrôle, je n'arrive toujours pas à me le représenter.
je répère, contrôle intéressant, effet réussi.
bonne continuation
PCPT
21 sept. 2005 à 18:39
Je m'excuse de vous avoir livré un fouilli de code, mais c'est une étape "fonctionnelle" de mon projet, Merci de ton commentaire, PCPT.
21 sept. 2005 à 13:12
le code est vraiment à revoir.
aucune indentation, des lignes inutiles
ex :
If (nn - (100 / con.Width * niv.Width)) < 1 Then niv.Width = niv.Width + 1: GoTo fin
niv.Width = niv.Width + (nn - (100 / con.Width * niv.Width)): GoTo fin
avec un fin: juste en dessous
le ELSE sert à çà ;)
des OnError partout.... (pas une vrai gestion çà)
la jauge à 0 ou 99 n'est pas correcte
tu n'as pas géré l'erreur du Load(5) si plusieurs fois
bref, bcp de boulot encore.
mais pour ta défense, le résultat est plutôt pas mal, même si j'ai du mal à en voir réellement l'application et l'utilité.
tu devrais également gérer par exemple ces fameux Load par un menu (pour ne pas en ajouter qu'un seul)
régler ce problème de graduation incorrecte
nommer tes contrôles !!!!
pouvoir bouger manuellement les signets (à la souris, drag & drop), çà serait bien plus sympa ;)
je note pas, y'a du boulot.
ah, et si tu ne veux pas trop te faire charpiller, petit conseil, ne laisse pas le code en "initié"
j'attend la suite et une réponse sur "mais pourquoi l'intégrer à un projet" (utilité)
++ bon courage
PCPT
21 sept. 2005 à 08:53
Yannick