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 16-07-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
MessageBox y PlaySnd simultáneos

Hola a todos.

Lo primero quería advertir que se ha roto la barra espaciadora, por eso escribo con guiones bajos (espero que no sea una molestia).

Y ahora mi pregunta.

Veréirs, me preguntaba si sería posible mostrar un MessageBox mientras se reproduce un archivo de audio mediante PlaySnd.
Y, además, que cuando pulsara el boton OK del MsgBox dejara de sonar el archivo de audio.

Gracias.

//Edito: Para cambiar los guiones bajos por espacios.

Última edición por jhonny fecha: 16-07-2007 a las 19:31:10.
Responder Con Cita
  #2  
Antiguo 16-07-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Prueba con algo así:
Código Delphi [-]
type
  TSound = class(TThread)
  private
    FPath: String;
  protected
    procedure Execute; override;
  public
    constructor Create(Path: String);
  end;

uses mmsystem;

{ TSound }

constructor TSound.Create(Path: String);
begin
  FPath:= Path;
  FreeOnTerminate:= TRUE;
  inherited Create(FALSE);
end;

procedure TSound.Execute;
begin
  while not Terminated do
  begin
    if FPath <> '' then
      PlaySound(PChar(FPath),0,SND_FILENAME or SND_SYNC)
    else
      // Pausa entre sonidos, usa la que prefieras
      Sleep(10);
  end;
end;

Y para usarlo:
Código Delphi [-]
  with TSound.Create('C:\WINDOWS\Media\Chord.wav') do
  begin
    ShowMessage('Pulsa aceptar para terminar');
    Terminate;
  end;
Responder Con Cita
  #3  
Antiguo 16-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Y si creas tu propio MessageBox, desde un TForm que haga lo que quieres?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 16-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Aquí es donde mejor retiro mis palabras y abro paso a un señor como seoane... La idea de usar un Hilo es definitivamente mucho mas practica
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 16-07-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por jhonny
Aquí es donde mejor retiro mis palabras y abro paso a un señor como seoane... La idea de usar un Hilo es definitivamente mucho mas practica
Todo lo contrario, parece que volví a sacar el cañón para matar un par de moscas

Mucho mas sencillo así:
Código Delphi [-]
var
  Sonido: String;
begin
  Sonido:= 'C:\WINDOWS\Media\Error de Windows XP.wav';
  PlaySound(PChar(Sonido),0,SND_FILENAME or SND_ASYNC or SND_LOOP);
  ShowMessage('Pulsa aceptar para terminar');
  PlaySound(nil,0,0);
end;

El código anterior estaba reciclado de este otro, en donde si tenia sentido usar un thread.
Responder Con Cita
  #6  
Antiguo 16-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por seoane
Todo lo contrario, parece que volví a sacar el cañón para matar un par de moscas

Mucho mas sencillo así:


Código Delphi [-]
var
Sonido: String;
begin
Sonido:= 'C:\WINDOWS\Media\Error de Windows XP.wav';
PlaySound(PChar(Sonido),0,SND_FILENAME or SND_ASYNC or SND_LOOP);
ShowMessage('Pulsa aceptar para terminar');
PlaySound(nil,0,0);
end;
Jo jo jo, tienes razón , pero en ese caso queda una duda dentro de mi,
¿Como carajos es que deje pasar la oportunidad de ganarle unita a seoane?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #7  
Antiguo 25-07-2007
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Graicas, seoane, el código va de perlas.

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
MessageBox johurgi Varios 4 19-09-2006 09:34:14
Messagebox jmlifi Varios 1 30-05-2005 12:25:00
Apache e IIS simultaneos ? HombreSigma Varios 1 27-03-2005 16:29:13
Cuando trabajan dos usuarios simultaneos solo graba la factura de uno tulio Firebird e Interbase 11 28-10-2003 12:10:34
usuarios simultaneos de interbase rrr Firebird e Interbase 1 10-08-2003 10:10:12


La franja horaria es GMT +2. Ahora son las 17:56:35.


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