VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "cCarro" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Option Explicit Private mVelocidadeMaxima As Double Private mConsumo As Double Private mVelocidade As Double Private WithEvents Relogio As Timer Public Deposito As cDeposito Public Event AlteracaoConsumo() Private Sub Class_Initialize() Set Deposito = New cDeposito Velocidade = 0 'VelocidadeMaxima = 150 mVelocidadeMaxima = CDbl(InputBox("Velocidade Máxima : ", "Novo Carro")) End Sub Private Sub Class_Terminate() Set Deposito = Nothing End Sub Public Sub InitRelogio(Relog As Timer) Set Relogio = Relog Relog.Interval = 1000 End Sub Public Property Get VelocidadeMaxima() As Double VelocidadeMaxima = mVelocidadeMaxima End Property Public Property Get Consumo() As Double Consumo = mConsumo End Property Public Property Get Velocidade() As Double Velocidade = mVelocidade End Property Public Property Let Velocidade(ByVal vNovoValor As Double) mVelocidade = vNovoValor ' O Consumo depende da velocidade do carro CalculaConsumo End Property Public Sub EncherDeposito() Deposito.Quantidade = Deposito.Capacidade End Sub ' O consumo depende da velocidade a que vai o carro Private Sub CalculaConsumo() Dim AnteriorConsumo As Double AnteriorConsumo = mConsumo Select Case Velocidade Case 0 mConsumo = 0 Case Is < 60 mConsumo = 10.4 Case Is < 90 mConsumo = 6.3 Case Is < 120 mConsumo = 5.6 Case Is >= 120 mConsumo = 8.7 End Select If mConsumo <> AnteriorConsumo Then RaiseEvent AlteracaoConsumo End Sub Private Sub Relogio_Timer() Debug.Print Second(Now()) End Sub