Percent: code van de ActiveX control
- We houden de waarden bij van Ja en Nee, en het totaal van beiden.
Dim totaal As Double
Dim ja As Double
Dim nee As Double
- En deze procedure herdimensioneert de labels in functie van het procentuele gewicht:
Private Sub toon()
'om deling door nul te vermijden
If totaal = 0 Then totaal = 1
lblJa.Left = 0
lblJa.Width = UserControl.Width * ja / totaal
lblNee.Left = lblJa.Width
lblNee.Width = UserControl.Width - lblJa.Width
lblpercent.Caption=lblja.Caption/(lblja.Caption+lblnee.
End Sub
- Bij het opstarten moeten we natuurlijk wel voor een propere start zorgen. Bijvoorbeeld:
Private Sub UserControl_Initialize()
lblJa.Top = 0
lblNee.Top = 0
lblJa.Height = UserControl.Height
lblNee.Height = UserControl.Height
End Sub
- Als de waarde van één van beide verandert, vangen we dat zo op:
Private Sub lblWaardeJa_Change()
ja = CDbl(lblWaardeJa.Caption)
totaal = ja + nee
toon
End Sub
Private Sub lblWaardeNee_Change()
nee = CDbl(lblWaardeNee.Caption)
totaal = ja + nee
toon
End Sub
- Na het koppelen van de eigenschappen van onze control aan de eigenschappen van controls
die we gebruikt hebebn, is de volgende code toegevoegd door de ActiveX Control Interface
wizard (we hebben de niet pertinente stukken verwijderd):
Public Property Get KleurJa() As OLE_COLOR
KleurJa = lblWaardeJa.BackColor
End Property
Public Property Let KleurJa(ByVal New_KleurJa As OLE_COLOR)
lblWaardeJa.BackColor() = New_KleurJa
PropertyChanged "KleurJa"
End Property
Public Property Get KleurNee() As OLE_COLOR
KleurNee = lblNee.BackColor
End Property
Public Property Let KleurNee(ByVal New_KleurNee As OLE_COLOR)
lblNee.BackColor() = New_KleurNee
PropertyChanged "KleurNee"
End Property
Public Property Get WaardeJa() As String
WaardeJa = lblWaardeJa.Caption
End Property
Public Property Let WaardeJa(ByVal New_WaardeJa As String)
lblWaardeJa.Caption() = New_WaardeJa
PropertyChanged "WaardeJa"
End Property
Public Property Get WaardeNee() As String
WaardeNee = lblWaardeNee.Caption
End Property
Public Property Let WaardeNee(ByVal New_WaardeNee As String)
lblWaardeNee.Caption() = New_WaardeNee
PropertyChanged "WaardeNee"
End Property
Public Property Get TekstJa() As String
TekstJa = lblJa.Caption
End Property
Public Property Let TekstJa(ByVal New_TekstJa As String)
lblJa.Caption() = New_TekstJa
PropertyChanged "TekstJa"
End Property
Public Property Get TekstNee() As String
TekstNee = lblNee.Caption
End Property
Public Property Let TekstNee(ByVal New_TekstNee As String)
lblNee.Caption() = New_TekstNee
PropertyChanged "TekstNee"
End Property
[VB Web] - [hlrnet] - [copyright]