Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   timer und Playsound (https://www.delphipraxis.net/176527-timer-und-playsound.html)

saschi35 12. Sep 2013 08:26

timer und Playsound
 
Hallo

ich habe ein anliegen und zwar:

ich habe einen Timer der nach ablauf von 10 sekunden Images und Labels anzeigt bzw Blinken lässt.
Dazu hätte ich aber gern das sobald er damit startet eine WAVE datei abspielt aber diese nicht immer wieder erneut startet wie der Interval vom timer.

timer3.interval:= 1000;
image2.Visible := not image2.Visible;

image4.Visible := not image4.Visible;

l_brandm.Visible := not l_brandm.Visible;

l_brandma.Visible := false;


SndPlaySound( 'BMA.WAV',0, SND_ASYNC );

Bei den Timereigenschaften habe ich bei Interval 10000 (10.000) eingeben

baumina 12. Sep 2013 08:38

AW: timer und Playsound
 
z:B. eine Variable SoundGespielt im FormCreate auf False setzen. Und dann im Timer

Delphi-Quellcode:
If not SoundGespielt then
begin
  SoundGespielt := True;
  SndPlaySound( 'BMA.WAV',0, SND_ASYNC );
end;

saschi35 12. Sep 2013 08:47

AW: timer und Playsound
 
achso noch ein hinweis:

SndPlaySound( 'BMA.WAV',0, SND_ASYNC );

sobald ich das ,0, eintrage verursacht lazarus eine Fehlermeldung ohne ,0, kommt keine Meldung, wieso?

DeddyH 12. Sep 2013 08:51

AW: timer und Playsound
 
Ganz wichtig: Fehlermeldungen niemals nennen, das nimmt den anderen den Spaß, selbst danach zu suchen. Wenn ich sndPlaySound nachschlage, sehe ich da 2 Parameter. Damit dürfte sich die Frage schon erübrigt haben.

hathor 12. Sep 2013 10:57

AW: timer und Playsound
 
Da die Variable Timer.Tag schon vorhanden ist, kann man doch die nutzen:

Delphi-Quellcode:
If Timer.Tag=0 then
BEGIN
SndPlaySound( 'BMA.WAV', SND_ASYNC );
Timer.Tag:=1;
END;

blondervolker 12. Sep 2013 12:35

AW: timer und Playsound
 
Und denne in Uses: mmSystem reinbasteln,

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses
  mmSystem;

{$R *.dfm}

procedure PlayMySound(SndName: String); //uses mmSystem
var
  FilePath: String;
begin
  FilePath := ExtractFilePath(ParamStr(0)) + 'Sounds\' + SndName + '.wav';

  if FileExists(FilePath) then
    //SndPlaySound(PAnsiChar(FilePath), SND_ASYNC ); //Alternative
    PlaySound(PChar(FilePath), hInstance, SND_ASYNC or SND_FILENAME);
end;

procedure TForm1.Button1Click(Sender: TObject);
//spielt Sound 1
begin
  PlayMySound('wav1');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//spielt Sound 2
  PlayMySound('wav2');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
//spielt Sound 3
  PlayMySound('wav3');
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz