Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi zeitlicher Abstand bei "beep" (https://www.delphipraxis.net/124649-zeitlicher-abstand-bei-beep.html)

stoepsel7891 22. Nov 2008 11:35


zeitlicher Abstand bei "beep"
 
bin Anfänger und programmiere gerade ein programm, wo u.A. der Befehl "beep" vorkommt. ich kann ja die Häufigkeit des Abspielens verändern, aber sobald ich mehrere beep befehle hintereinander ausführe, klingt es nur noch wie langgezogener Ton, es gibt also keine Pausen mehr zwischen den "beeps". Kann ich das irgendwie beeinflussen???

Noedel 22. Nov 2008 11:47

Re: zeitlicher Abstand bei "beep"
 
machs mit nem timer

stoepsel7891 22. Nov 2008 11:52

Re: zeitlicher Abstand bei "beep"
 
bin wie gesagt totaler anfänger, kenne delphi nur aus der schulinformatik. was ist ein timer, wie funktioniert sowas???

Noedel 22. Nov 2008 11:56

Re: zeitlicher Abstand bei "beep"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ein Timer ist das lustige Ding im Anhang :)

der hat die funktion alles was in seiner procedure steht, immer wieder nach ner bestimmten, selbst festzulegenden zeit, zu wiederholen.
die zeit kannst du mit "interval" einstellen... (die angabe ist in Millisekunden und 0 heißt Timer aus)
sollte helfen :)

stoepsel7891 22. Nov 2008 12:07

Re: zeitlicher Abstand bei "beep"
 
ok, danke

Noedel 22. Nov 2008 12:15

Re: zeitlicher Abstand bei "beep"
 
heißt das, du kommst klar?

stoepsel7891 22. Nov 2008 12:44

Re: zeitlicher Abstand bei "beep"
 
ja den abstand habe ich geregelt bekommen, aber das hört ja jetzt ni wieder auf ich hatte ja eine procedure geschrieben, um eine anzahl von tönen zu erzeugen

DeddyH 22. Nov 2008 13:05

Re: zeitlicher Abstand bei "beep"
 
Dann musst Du im Timer eine global erreichbare Zahl hochzählen und beim Erreichen eines definierten Maximalwerts den Timer abschalten.

Noedel 22. Nov 2008 13:08

Re: zeitlicher Abstand bei "beep"
 
dann fragst du einfach mit ner ineger variable immer wieder ab, wie oft schon "gebeept" wurde und sagst nach erreichen des limits, dass der timer aus gehen soll :)

in etwa so
Delphi-Quellcode:
   procedure form1.Timer1Timer(Sender: TObject);
   var wie_oft_schon:integer;
   begin
   IF wie_oft_schon < limit THEN
     begin
       beep;
       inc(wie_oft_schon);
     end
   ELSE timer1.interval:=0; //oder timer1.enabled:=false;
   end;
//edit : zu spät :(

DeddyH 22. Nov 2008 13:12

Re: zeitlicher Abstand bei "beep"
 
wie_oft_schon darf aber nicht lokal sein ;)

Noedel 22. Nov 2008 13:14

Re: zeitlicher Abstand bei "beep"
 
stimmt. hast recht

stoepsel7891 22. Nov 2008 13:43

Re: zeitlicher Abstand bei "beep"
 
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
    wie_oft_schon:integer;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
    procedure ablauf(limit:integer);
    begin
   IF wie_oft_schon < limit THEN
     begin
       beep;
       inc(wie_oft_schon);
     end
   ELSE timer1.interval:=0;
   end;





begin

     ablauf(10);

end;

end.
ist jetzt erstmal mein quellcode, wenn ich das programm starte macht es 10mal beep in einem von mir bei intervall festgelegten abstand, ich möchte aber, dss die töne erst bei klicken eines buttons erzeugt werden, wie ist das möglich, ich hab es probiert und mein quellcode war danach etwas durcheinander :roll:

DeddyH 22. Nov 2008 13:49

Re: zeitlicher Abstand bei "beep"
 
Stell den Timer im OI auf Disabled (d.h. Enabled auf false ;)), füge noch eine globale Variable "limit" ein, mach einen Doppelklick auf den Button und schreibe das hier in den Quelltext:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  limit := 10;
  wie_oft_schon := 0;
  Timer1.Enabled := true;
end;

Mikescher 22. Nov 2008 14:52

Re: zeitlicher Abstand bei "beep"
 
Noch ein kleiner Tipp am Rande :wink: :

Anstatt einer globalen Variable kannste auch einfach Timer1.Tag benutzen

MfG Mikescher


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 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