pobos
Messages postés10Date d'inscriptionlundi 1 août 2005StatutMembreDernière intervention15 juillet 2010
-
17 juil. 2008 à 19:49
pobos
Messages postés10Date d'inscriptionlundi 1 août 2005StatutMembreDernière intervention15 juillet 2010
-
18 juil. 2008 à 18:16
Bonjour à toutes et à tous.
Je developpe en VB6 et j'aimerai savoir comment transformer un contrôle shape en une sorte de progress bar pour indiquer par exemple le niveau d'un liquide dans un recipient
PS: le contrôle doit être de forme circulaire.
merci d'avance.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 18 juil. 2008 à 17:36
Bonjour,
Je viens de retrouver sur ma machine un petit bout de code qui, si je me rappelle bien, avait été écrit par Renfields :
Sur une Form :
- une picturebos nommée hublot
- une picturebox nommée Picture1
- un timer nommé Timer
Private Declare Function CreateEllipticRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SelectClipRgn Lib "gdi32.dll" (ByVal hdc As Long, ByVal hRgn As Long) As Long
Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long
Private Sub Form_Activate()
Dim hRgn As Long
With Me
.ScaleMode = vbPixels
.Move 0, 0, Screen.Width / 2, Screen.Height / 2
End With
With Picture1
.ScaleMode = vbPixels
.Move Me.ScaleWidth / 4, Me.ScaleHeight / 4, 200, 200
End With
With hublot
.ScaleMode = vbPixels
.BackColor = &HC0C0&
.Move 10, 10, 100, 100
End With
Set hublot.Container = Picture1
hublot.BackColor = vbYellow
Timer1.Interval = 50
Timer1.Enabled = True
hRgn = CreateEllipticRgn(0, 0, hublot.ScaleWidth, hublot.ScaleHeight)
SelectClipRgn hublot.hdc, hRgn
DoEvents
hublot.Line (0, 0)-(100, 100), vbWhite, BF
DeleteObject hRgn
End Sub
Private Sub Timer1_Timer()
Static nSize As Long
nSize = nSize + 1
If nSize = 100 Then
hublot.Line (0, 0)-(100, 100), vbWhite, BF
nSize = 0
End If
hublot.Line (0, (100 - nSize) * hublot.ScaleHeight / 100)-(hublot.ScaleWidth, hublot.ScaleHeight), vbBlue, BF
End Sub
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 17 juil. 2008 à 22:51
Bonsoir,
Moi, j'aime bien "mais le récipient doit être circulaire" !!!...
Un cercle n'est pas un volume, mais une surface plane (donc en aucun cas un récipent)...
J'imagine donc qu'il s'agit d'un récipent cylindrique ou sphérique... (encore qu'il pourrait fort bien également être conique !!!!)
Reste à savoir sous quel angle tu "vois" monter le niveau ...
S'il s'agit d'un récipent cylindrique "debout", par exemple, et que tu représentes le niveau en coupe longitudinale, ce sera un rectangle montant dans un rectangle.
S'il s'agit d'un récipent cylindrique "couché" et que tu représentes le niveau en coupe longitudinale, ce sera un secteur montant dans un cercle...
etc... etc...
Je me refuse à "deviner" et attends que tu exprimes tout avec la plus grande précision, sans rtien omettre ! (nous verrons ensuite)....
Ce qui se pense clairement s'exprime aisément, n'est-ce pas ?
pobos
Messages postés10Date d'inscriptionlundi 1 août 2005StatutMembreDernière intervention15 juillet 2010 18 juil. 2008 à 16:16
bonjour, tout d'abord excusez-moi pour cette abscence.
Je me refuse à "deviner" et attends que tu exprimes tout avec la plus grande précision, sans rtien omettre ! (nous verrons ensuite)....
Ce qui se pense clairement s'exprime aisément, n'est-ce pas ?
Je suis tout à fait d'accord avec toi jmfmarques,peut être que j'ai pas été très précie dans mon explication.
Voila, je développe présentement une application de gestion du stock de carburant d'une station service. Chaque cuve a une forme cylindrique mais doit être couchée comme ceci.
Je voudrai simplifier la répresention en utilisant juste un cercle ou pourquoi pas une ellipse. Merci à nhervagault pour son lien.
Maintenant le plus difficille va être de répresenter avec une couleur quelconque la hauteur du liquide.
pobos
Messages postés10Date d'inscriptionlundi 1 août 2005StatutMembreDernière intervention15 juillet 2010 18 juil. 2008 à 18:16
merci beaucoup jmfmarques.
je crois que cela me convient, il ne me reste plus qu'à bien étudier le code pour l'adapter à mon cas.
merci également à nhervagault pour sa contribution.
A+.