OVH Cloud OVH Cloud

ActiveX windows

2 réponses
Avatar
gedeon
Bonjour,
peut-on disposer du contrôle que windows utilise pour afficher l'historique
de l'utilisation de l'UC dans le gestionnaire de tâches ?

existe t-il un activeX ?

Merci

2 réponses

Avatar
François Picalausa
Hello,

Je ne pense pas que le contrôle de windows soit fournit.
Tu peux toutefois réaliser assez facilement ce type de contrôles.
Dans un usercontrol contenant une picturebox nommée pBackBuffer, place le
code suivant:
Option Explicit

Private LastData As Byte

Private Const DataX As Long = 10

Public Sub PushData(Value As Byte)
pBackBuff.PaintPicture UserControl.Picture, -DataX *
Screen.TwipsPerPixelX, _
0, pBackBuff.Width, pBackBuff.Height, _
0, 0, pBackBuff.Width, pBackBuff.Height, vbSrcCopy

'Efface la partie de droite
pBackBuff.Line (pBackBuff.ScaleWidth - DataX * Screen.TwipsPerPixelX, _
0)-(pBackBuff.ScaleWidth, pBackBuff.ScaleHeight),
UserControl.BackColor, _
BF

'Trace la nouvelle données sur le graph
pBackBuff.Line (UserControl.ScaleWidth - DataX * Screen.TwipsPerPixelX,
_
Int(pBackBuff.ScaleHeight * LastData / 255))- _
(pBackBuff.ScaleWidth, _
Int(pBackBuff.ScaleHeight * Value / 255)), pBackBuff.ForeColor

Set UserControl.Picture = pBackBuff.Image
pBackBuff.Cls

LastData = Value
End Sub

Private Sub UserControl_Initialize()
UserControl.BackColor = vbBlack
pBackBuff.AutoRedraw = True
pBackBuff.BackColor = vbBlack
pBackBuff.ForeColor = vbGreen

pBackBuff.Visible = False
pBackBuff.BorderStyle = 0
Set UserControl.Picture = pBackBuff.Image

LastData = 255
End Sub

Private Sub UserControl_Resize()
pBackBuff.Height = UserControl.ScaleHeight
pBackBuff.Width = UserControl.ScaleWidth
End Sub

Place une instance de ce contrôle sur une feuille, ainsi qu'un timer, timer1
dont l'interval est de 500 ms.
Dans le code de la feuille écrit ceci:
Option Explicit

Private Sub Timer1_Timer()
ucMovingGraph1.PushData CByte(Int(Rnd * 255))
End Sub

Ce code est bien entendu à améliorer, mais celà peut déjà te donner une idée
de comment faire.

--
François Picalausa

"gedeon" a écrit dans le message de news:

peut-on disposer du contrôle que windows utilise pour afficher
l'historique de l'utilisation de l'UC dans le gestionnaire de tâches ?


Avatar
gedeon
Merci,
on peut effectivement faire qqchose de sympa avec ca

encore merci




"François Picalausa" a écrit dans le message de news:

Hello,

Je ne pense pas que le contrôle de windows soit fournit.
Tu peux toutefois réaliser assez facilement ce type de contrôles.
Dans un usercontrol contenant une picturebox nommée pBackBuffer, place le
code suivant:
Option Explicit

Private LastData As Byte

Private Const DataX As Long = 10

Public Sub PushData(Value As Byte)
pBackBuff.PaintPicture UserControl.Picture, -DataX *
Screen.TwipsPerPixelX, _
0, pBackBuff.Width, pBackBuff.Height, _
0, 0, pBackBuff.Width, pBackBuff.Height, vbSrcCopy

'Efface la partie de droite
pBackBuff.Line (pBackBuff.ScaleWidth - DataX * Screen.TwipsPerPixelX, _
0)-(pBackBuff.ScaleWidth, pBackBuff.ScaleHeight),
UserControl.BackColor, _
BF

'Trace la nouvelle données sur le graph
pBackBuff.Line (UserControl.ScaleWidth - DataX * Screen.TwipsPerPixelX,
_
Int(pBackBuff.ScaleHeight * LastData / 255))- _
(pBackBuff.ScaleWidth, _
Int(pBackBuff.ScaleHeight * Value / 255)), pBackBuff.ForeColor

Set UserControl.Picture = pBackBuff.Image
pBackBuff.Cls

LastData = Value
End Sub

Private Sub UserControl_Initialize()
UserControl.BackColor = vbBlack
pBackBuff.AutoRedraw = True
pBackBuff.BackColor = vbBlack
pBackBuff.ForeColor = vbGreen

pBackBuff.Visible = False
pBackBuff.BorderStyle = 0
Set UserControl.Picture = pBackBuff.Image

LastData = 255
End Sub

Private Sub UserControl_Resize()
pBackBuff.Height = UserControl.ScaleHeight
pBackBuff.Width = UserControl.ScaleWidth
End Sub

Place une instance de ce contrôle sur une feuille, ainsi qu'un timer,
timer1 dont l'interval est de 500 ms.
Dans le code de la feuille écrit ceci:
Option Explicit

Private Sub Timer1_Timer()
ucMovingGraph1.PushData CByte(Int(Rnd * 255))
End Sub

Ce code est bien entendu à améliorer, mais celà peut déjà te donner une
idée de comment faire.

--
François Picalausa

"gedeon" a écrit dans le message de news:

peut-on disposer du contrôle que windows utilise pour afficher
l'historique de l'utilisation de l'UC dans le gestionnaire de tâches ?