![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#2
|
||||
|
||||
|
Como dije antes, se usar las APIs WaveOutSetVolume y WaveOutGetVolume en VB, pero me vi en la necesidad de llevar dicho uso en Delphi... como tengo una clase hecha en VB me dije que sería de mucha utilidad "llevarla" a Delphi...
No se si alguien en el foro sabe algo de VB, pero aquí está el código de la clase que yo mismo realicé: 'variables locales para almacenar los valores de las propiedades Private mvarMultiplicador As Integer 'copia local Private mvarPorcVolumem As String 'copia local Private mvarVolumen As String 'copia local Private Declare Function waveOutSetVolume Lib "Winmm" (ByVal wDeviceID As Integer, ByVal dwVolume As Long) As Integer Private Declare Function waveOutGetVolume Lib "Winmm" (ByVal wDeviceID As Integer, dwVolume As Long) As Integer Public Sub Cambiar_Volumen(Multiplo As Integer) Dim AUX As Long Dim TEMP, TEMP1 As String ' Obtengo el multiplicador If Multiplo > 15 Then Multiplicador = 15 Else: Multiplicador = Multiplo End If If Multiplo < 0 Then Multiplicador = 0 Else: Multiplicador = Multiplo End If TEMP1 = CInt(Multiplicador) TEMP = Right((Hex$(TEMP1 * 4369)), 4) ' Obengo volumen TEMP = CLng("&H" & TEMP & TEMP) AUX = waveOutSetVolume(0, TEMP) Volumen = Hex$(TEMP) ' Obtengo el porcentaje PorcVolumen = CStr((Multiplicador * 100) \ 15) + " %" End Sub Public Function Imprimir_Volumen(Multiplo As Integer) As String If Multiplo > 15 Then Multiplo = 15 Else: If Multiplo < 0 Then Multiplo = 0 End If End If Imprimir_Volumen = CStr((Multiplo * 100) \ 15) + " %" End Function Public Sub Volume_Inicial() Dim AUX, AUX1 As Long Dim TEMP As String AUX = waveOutGetVolume(0, AUX1) ' Obtengo volumen Volumen = Hex$(AUX1) TEMP = "&H" & Right(Hex$(AUX1), 4) ' Obtengo el multiplicador Multiplicador = TEMP / 4396 ' Obtengo el porcentaje PorcVolumen = CStr((Multiplicador * 100) \ 15) + " %" End Sub Friend Property Let Volumen(ByVal vData As String) 'se usa al asignar un valor a la propiedad, en la parte izquierda de una asignación. 'Syntax: X.Volumen = 5 mvarVolumen = vData End Property Friend Property Get Volumen() As String 'se usa al recuperar un valor de una propiedad, en la parte derecha de una asignación. 'Syntax: Debug.Print X.Volumen Volumen = mvarVolumen End Property Friend Property Let PorcVolumem(ByVal vData As String) 'se usa al asignar un valor a la propiedad, en la parte izquierda de una asignación. 'Syntax: X.PorcVolumem = 5 mvarPorcVolumem = vData End Property Friend Property Get PorcVolumem() As String 'se usa al recuperar un valor de una propiedad, en la parte derecha de una asignación. 'Syntax: Debug.Print X.PorcVolumem PorcVolumem = mvarPorcVolumem End Property Public Property Let Multiplicador(ByVal vData As Integer) 'se usa al asignar un valor a la propiedad, en la parte izquierda de una asignación. 'Syntax: X.Multiplicador = 5 If vData > 15 Then mvarMultiplicador = 15 Else: If vData < 0 Then mvarMultiplicador = 0 Else: mvarMultiplicador = vData End If End If End Property Public Property Get Multiplicador() As Integer 'se usa al recuperar un valor de una propiedad, en la parte derecha de una asignación. 'Syntax: Debug.Print X.Multiplicador Multiplicador = mvarMultiplicador End Property Agradecería cualquier ayuda que pudieran darme... como dije antes, en VB se usar esas APIs pero no encuentro manera de cómo usarlas en Delphi... si alguien sabe algo sería de muchísima ayuda. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|