AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

frage zu TTimer

Ein Thema von fwsp · begonnen am 1. Feb 2006 · letzter Beitrag vom 1. Feb 2006
Antwort Antwort
fwsp
(Gast)

n/a Beiträge
 
#1

frage zu TTimer

  Alt 1. Feb 2006, 19:29
hallo

ich möchte eine funktion programmieren, die nacheinander töne ausgibt, dazwischen soll jeweils pause sein, nur klappt das überhaupt nicht mit dem code den ich geschrieben habe. ich möchte einen Timer verwenden und kein sleep. kann mir jemand helfen?
danke.

Delphi-Quellcode:
function Dur(StartTon: integer; Timer: TTimer): string;
begin
//1. Ton
 FMain.MidiOutput.PutShort($90, StartTon, UGlobal.IVLautstaerke);
 Timer.Enabled:= True;
//2. Ton
 FMain.MidiOutput.PutShort($90, StartTon+2, UGlobal.IVLautstaerke);
 Timer.Enabled:= True;
//3. Ton
 FMain.MidiOutput.PutShort($90, StartTon+4, UGlobal.IVLautstaerke);
 Timer.Enabled:= True;
//4. Ton
 FMain.MidiOutput.PutShort($90, StartTon+5, UGlobal.IVLautstaerke);
 Timer.Enabled:= True;
//5. Ton
 FMain.MidiOutput.PutShort($90, StartTon+7, UGlobal.IVLautstaerke);
 Timer.Enabled:= True;
//6. Ton
 FMain.MidiOutput.PutShort($90, StartTon+9, UGlobal.IVLautstaerke);
 Timer.Enabled:= True;
//7. Ton
 FMain.MidiOutput.PutShort($90, StartTon+11, UGlobal.IVLautstaerke);
 Timer.Enabled:= True;
//8. Ton
 FMain.MidiOutput.PutShort($90, StartTon+12, UGlobal.IVLautstaerke);
 Timer.Enabled:= True;

 Result:= 'Dur';
end;
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: frage zu TTimer

  Alt 1. Feb 2006, 19:32
Einen Timer zu verwenden ist nicht sehr passend hier. Machs halt so:

Delphi-Quellcode:
procedure Delay(Time: Cardinal);
var start: Cardinal;
begin
start:=GetTickCount;
repeat Application.ProcessMessages until GetTickCount>=start+time;
end;
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: frage zu TTimer

  Alt 1. Feb 2006, 19:33
Moin,

schau dir mal Delay an.

MfG
Thorsten
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#4

Re: frage zu TTimer

  Alt 1. Feb 2006, 19:35
Der Timer kann nur ausgeführt werden, während keine Funktion läuft. Du machst es so:
Delphi-Quellcode:
beep;
timer aktivieren;
beep;
timer aktivieren; (sinnlos, da bereits aktiviert)
du musst deine Funktion beenden und kannst dann den Timer öffnen. Verwende dann eine globale Zählervariable:
Delphi-Quellcode:
var
  zaehler:integer=0;



procedure tform1.timerprozedur (Doppelklick auf Timer);
begin
  zaehler:=zaehler+1;
  case zaehler of
    1: TON1 ABSPIELEN;
    2: TON2 ABSPIELEN;
  end else
  begin
    zaehler:=0;
    timer1.enabled:=false;
  end;
end;

//so aktivieren:
procedure aktivieretimer;
begin
  timer1.enabled:=true;
  timer1timer(self);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#5

Re: frage zu TTimer

  Alt 1. Feb 2006, 19:40
danke, sehr hilfreich.
ich werde das über delay regeln. es ist einfacher umzusetzen, außerdem ist das nur eine von vielen ähnlichen aufgebauten prozeduren.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz