AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi WAVE, Edit-Feld und Timer
Thema durchsuchen
Ansicht
Themen-Optionen

WAVE, Edit-Feld und Timer

Ein Thema von Assisi · begonnen am 20. Mai 2006 · letzter Beitrag vom 20. Mai 2006
Antwort Antwort
Assisi

Registriert seit: 20. Mai 2006
6 Beiträge
 
#1

WAVE, Edit-Feld und Timer

  Alt 20. Mai 2006, 13:35
Hallo User,

bei einer Spielprogrammierung stellt sich mir folgendes Problem:

- mit Hilfe eines Timers wird alle 20 Sekunden eine Routine gestartet, in dieser wird vor allem eine WAV-Datei abgespielt (Zeichen für das Ende des 20-Sekunden-Intervalls)
- der Benutzer soll in dieser Zeit (3 Sekunden werden durch die WAV-Datei gewissermaßen heruntergezählt) noch eine Eingabe in einem Edit-Feld machen können und per Schaltfläche an das Programm weitergeben können. Hauptproblem: erst danach (!) soll die Routine "ball" greifen, die die Farbe des Spielballs verwandelt. Wie muss die Timer-Routine aussehen, so dass dies möglich ist???

Versuch:

if (spieler1 = true) then
begin
//* Application.ProcessMessages;
sndplaysound('countdown.wav', 2);
spieler1 := false;
ball
end
else
begin
//* Application.ProcessMessages;
sndplaysound('countdown.wav', 2);
spieler1 := true;
ball;
end;

Dies funktioniert schon fast so, wie gewünscht, nur wird die Ballfarbe gewissermaßen schon mit dem Ankündigen der letzten drei Sekunden geändert!

MfG
Assisi
  Mit Zitat antworten Zitat
Assisi

Registriert seit: 20. Mai 2006
6 Beiträge
 
#2

Re: WAVE, Edit-Feld und Timer

  Alt 20. Mai 2006, 13:38
Nachtrag:

Es funktioniert in der bschriebenen Weise für die Variante, dass Application.ProcessMessages aktiviert ist und sndplaysound('',1) eingestellt ist, habe etwas probiert und dann die schlechteste Variante ins Forum gestellt, pardon!

Ciao
Assisi
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#3

Re: WAVE, Edit-Feld und Timer

  Alt 20. Mai 2006, 13:46
Hallo,

(Benutze doch bitte die [ delphi]-Tags (über die Buttons über dem Text), dann ist es übersichtlicher.)

Zuerst würde ich zur Wiedergabe PlaySound verwenden, dann kannst du mit

PlaySound('Countdown.wav', 0, SND_FILENAME or SND_SYNC); erreichen, dass die Befehle, die nach PlaySound folgen, erst nach Ende des Sounds ausgeführt werden. Dazu muss die Länge der Wave-Datei eben 3 Sekunden sein.

Oder:

Trotzdem mit PlaySound, aber per Timer ("Countdown"), der jede Sekunde einen Countdown-Ton abspielt und eine Variable (Integer, "Zeit") runtersetzt. Ist diese Null, wird gewechselt.

Delphi-Quellcode:
Zeit := 3;
Countdown.Enabled := true;

...

Procedure TForm.CountdownTimer(Sender: TObject);
begin
  PlaySound('Countdown.wav', 0, SND_FILENAME or SND_ASYNC); //Achtung: Hier _ASYNC!
  Dec(Zeit);
  if (Zeit = 0) then
  begin
    Spieler1 := not Spieler1; // Kehr den Wert um
    Ball; // Deine Routine
  end;
end;
Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Assisi

Registriert seit: 20. Mai 2006
6 Beiträge
 
#4

Re: WAVE, Edit-Feld und Timer

  Alt 20. Mai 2006, 13:50
Lieber ManuMF,

zunächst einmal vielen Dank für die schnelle (selbstlose) Hilfe, bin ganz neu hier, deshalb war die Form wohl nicht ganz ansprechend! Werde nun die Tipps ausprobieren und melde mich dann nochmals.

Ciao
Assisi
  Mit Zitat antworten Zitat
Assisi

Registriert seit: 20. Mai 2006
6 Beiträge
 
#5

Re: WAVE, Edit-Feld und Timer

  Alt 20. Mai 2006, 14:09
Lieber ManuMF,

habe die erste Variante nun intensiv getestet, ist aber nur ein Teilerfolg. Auch in den letzten drei Sekunden soll noch ein Exit-Feld beschrieben werden können - dies geht aber nicht, das Feld ist gewissermaßen tot. Die Ballfarbe wechselt nun in der Tat (wie gewünscht) erst nach Ende des Countdowns. Ist Deine Lösung noch in meinem Sinne anzupassen?

Assisi
  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 03:22 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