AGB  ·  Datenschutz  ·  Impressum  







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

Tastenton bei Tastendruck

Ein Thema von Dunkelbunt27 · begonnen am 24. Sep 2010 · letzter Beitrag vom 27. Sep 2010
Antwort Antwort
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#1

Tastenton bei Tastendruck

  Alt 24. Sep 2010, 16:22
Hallo liebe Delphi Praxis,

ich arbeite an einem kleinen Projekt, bei dem ich bei Tastendruck einen kurzen Ton abspielen will (async also so, dass das Programm in der Zeit nicht einfriert).

Ersteinmal habe ich ein Großes TRichEdit Feld auf der Form.
In den uses steht mmSystem;
Im OnKeyDown Ereignis der Form habe ich folgenden Quelltext:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
const
FileName = 'leer.wav';

begin
  if (Key = VK_A) then
    begin
      MCISendString(PChar('play ' + FileName), nil, 0, 0);
    end
end;
Unerklärlicherweise lässt sich das Programm nich kompilieren und spuckt eine Fehlermeldung Undeklarierter Bezeichner für VK_A (VK_RETURN, also Enter Taste) funktioniert).
Ich hab es mit VK_RETURN probiert und erfolgreich kompiliert, jedoch kam kein Ton... auch kein Beep-Ton wie bei PlaySound...

Ich hoffe einer der hellen Köpfe kann mir helfen, bitte ausführlich und verständlich, sprich bitte mit Quelltext =)
Ich bin nicht der Ober-Programmierer.


_____________________
Vielen Dank Dunkelbunt

Geändert von Dunkelbunt27 (24. Sep 2010 um 16:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Tastenton bei Tastendruck

  Alt 24. Sep 2010, 16:31
Die Konstanten VK_A etc. sind wohl nirgends definiert. Aber du kannst anstelle von VK_A auch einfach Ord('A') schreiben. Da weiß auch jeder was gemeint ist.
Warum verwendest du eigentlich nicht "PlaySound" wenn es bisher damit funktioniert hat?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's

Geändert von SirThornberry (24. Sep 2010 um 16:33 Uhr)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Tastenton bei Tastendruck

  Alt 24. Sep 2010, 16:33
Hier mal ein Beispiel, wie man die Ziffern 0 bis 9 sprechen lassen kann.
Delphi-Quellcode:
uses ..., MMSystem {benötigt für PlaySound()};

function ApplicationPath: string; // Hilfsfunktion
begin
   Result := ExtractFilePath(ParamStr(0));
end;

procedure TFrmTest.EditLieferscheinNrKeyPress(Sender: TObject;
  var Key: Char);
var
   s:string;
begin
   if Key in ['0'..'9'] then
   begin
      // Wave-Datei liegen im Unter-Verzeichnis "Wave"
      // also "0.wav" bis "9.wav"
      s := ApplicationPath+'Wave\'+ Key+'.WAV';
      PlaySound(PChar(s), 0, SND_FILENAME or SND_ASYNC);
   end;
end;
Das Archiv im Anhang enthält die 10 Wave-Dateien.
Angehängte Dateien
Dateityp: zip Wave.zip (72,3 KB, 14x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#4

AW: Tastenton bei Tastendruck

  Alt 24. Sep 2010, 16:37
Danke für die Antworten,
ich probiere beide aus.

Ergebnis dann im EDIT =)

EDIT:
Ich habe das Nummern-Sprechprogramm versucht.
Ersteinmal will ich fragen ob es nur bei mir so ist, dass die Wav Dateien irgendwie abgehackt klingen also Fün.... statt Fünf.
Außerdem:
bei mir kommt ersteinmal nur ein Beep Ton =(
Schreibe ich meine Zahlen in ein EditFeld, passiert auch nichts =(
Woran kanns liegen?

Ich habe genau den Quelltext benutzt...
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function ApplicationPath: string; // Hilfsfunktion
begin
   Result := ExtractFilePath(ParamStr(0));
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var
   s:string;
begin
   if Key in ['0'..'9'] then
   begin
      // Wave-Datei liegen im Unter-Verzeichnis "Wave"
      // also "0.wav" bis "9.wav"
      s := ApplicationPath+'Wave\'+ Key+'.WAV';
      PlaySound(PChar(s), 0, SND_FILENAME or SND_ASYNC);
   end;
end;

end.

Geändert von Dunkelbunt27 (24. Sep 2010 um 16:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Tastenton bei Tastendruck

  Alt 24. Sep 2010, 16:58
Setze entweder Form.Keypreview auf true, oder häng das Ereignis OnKeypress auch an Dein Edit.

0.wav ist kaputt deshalb der Beep.
Abgehackt klingt es weil die Eingabe einer neuen Zahl die Soundausgabe der vorherigen unterbricht.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#6

AW: Tastenton bei Tastendruck

  Alt 24. Sep 2010, 17:03
Du hast mich falsch verstanden, es kommt kein Ton im Programm. Ich habe mir die Sounds als datei mit Vlcplayer angehört...

EDIT:
Nachdem ich Form.Keypreview auf True gesetzt habe kommt jetz immer ein Beep-Ton (bei 0-9)

Geändert von Dunkelbunt27 (24. Sep 2010 um 17:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#7

AW: Tastenton bei Tastendruck

  Alt 27. Sep 2010, 16:34
Ich habe das Problem jetz gelöst.
Es lag lediglich daran, dass die OnKeyPress Prozedur der Form nur anspringt, wenn keine Edit Box da ist.
Ich hab das ganze für die TRichEdit eingestellt und alles klappt super!
Danke für eure Hilfe!


________________________________
Viele Grüße,
Dunkelbunt
  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 21: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