Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2004
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Unhappy Ayuda sobre WaveOutGetVolumen

Disculpen, necesito ayuda para saber como usar las APIs WaveOutGetCVolumen y WaveOutSetVolumen en Delphi.
La verdad es que ya use dichas APIs en VB y sé como implementarlas, es más me hice una clase que maneja el volumen del sistema (en VB). Pero tengo inconvenientes para usar dichas APIs en Delphi (uso la versión 6 professional).
Tengo un reproductor que requiere manejar el volumen del sistema, y se que dichas funciones lo hacen... ¡Pero hasta el momento no sé cómo hacer uso de ellas en Delphi!
Si alguien tiene un ejemplo estaría muy agradecido...
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #2  
Antiguo 05-10-2004
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Exclamation De VB a Delphi...

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.
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 09-10-2004
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cool Problema Resuelto!

Listo!... he encontrado la solución, y la respuesta la tuve siempre a mis narices...
Mi naturaleza de toquete me llevó a curosiar por intentar trasformar valores de una tipo a otro... y comparandolos con los tipos de datos que reciben dichas APIs y leyendo detenidamente la ayuda de Delphi saqué la respuesta.
Era tal mi motivación que hice un componente que maneja el volumen...
Si alguien lo desea, deje su e-mail y se lo envío. (NOTA: Trabajo con Delphi 6)
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 11-10-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Te envío un privado con mi mail...
__________________
:)
Responder Con Cita
  #5  
Antiguo 08-12-2006
gonzapinamar gonzapinamar is offline
Registrado
 
Registrado: nov 2006
Posts: 1
Poder: 0
gonzapinamar Va por buen camino
Yoooo

Cita:
Empezado por Delphius

Era tal mi motivación que hice un componente que maneja el volumen...
Si alguien lo desea, deje su e-mail y se lo envío. (NOTA: Trabajo con Delphi 6)

Yo lo deseo, si tienes el tiempo lo espero y te felicito je, estoy kuchando hace unas horas con eso... gracias... mi mail es gonzapinamar@hotmail.com
Responder Con Cita
  #6  
Antiguo 08-12-2006
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Dejo el zip con el componente aqui

Guau... hace tiempo que no se abrìa este hilo...

gonzapinamar te adjunto el archivo por aqui... ya que si alguien mas tropieza por este hilo y lo quiere... se ahora un tiempo...

Estoy seguro de que hay implementaciones mucho mejores que la que yo ofrezco.

Espero que te sirva
Saludos,
Archivos Adjuntos
Tipo de Archivo: zip Volumen.zip (2,0 KB, 45 visitas)
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:09:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi