Text im Editfeld mit Entertaste bestätigen
spacer
Autor Nachricht
marcelrusi
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 11.01.12 19:37 
Hallo Leute,

folgendes Problem :

Habe ein Programm erstellt, dass einen Ton abspielt, wenn im Editfeld '1' steht und einen anderen abspielt, wenn im Feld '10' steht. Leider wird bereits der Ton für '1' abgespielt, wenn ich die '10' eingeben will ( da man ja 1 zuerst eingibt ). Kann man das Programm so schreiben, dass der Ton erst gespielt wird, wenn die Eingabe mit z.b. der Entertaste bestätigt wird ?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
HenryHux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 524
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: Mi 11.01.12 19:46 
Du kannst neben dem OnChange Ereignis auch das OnKey Ereignis wählen,
in dem kannst du dann z.B. so auf die Entertaste reagieren:
ausblenden Delphi-Quelltext markieren
1:
if key = VK_Return then ..


lg

Für diesen Beitrag haben gedankt: marcelrusi
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
marcelrusi Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 11.01.12 20:02 
Danke schonmal aber kenn mich mit OnKey nicht so aus...

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = VK_Return then
if Edit1.Text = '1' then
PlaySound(PChar('1.wav'), hInstance, SND_ASYNC);...


ist jetzt mein Quellcode. Klappt aber nicht :P Bekomme den Fehler 'Inkompatible Typen'. Was muss ich ändern ?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
HenryHux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 524
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: Mi 11.01.12 20:13 
Tut mir leid, habe mich nicht genau ausgedrückt.
Du benutzt das KeyPress Event, jedoch brauchst du das KeyDown Event für diese Methode.

lg :)

Für diesen Beitrag haben gedankt: marcelrusi
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
marcelrusi Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 11.01.12 20:25 
Okay jetzt klappts schonma, dass der Ton gespielt wird, wenn ich Enter drücke, aber der Ton wird trotzdem noch während des Eingebens gespielt...
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
marcelrusi Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 11.01.12 20:31 
Ich muss noch irgendwo else if ( also wenn enter nicht gedrückt wird ) einbringen oder ? aber wo ?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15841
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Mi 11.01.12 20:49 
user profile iconmarcelrusi hat folgendes geschrieben Zum zitierten Posting springen:
Okay jetzt klappts schonma, dass der Ton gespielt wird, wenn ich Enter drücke, aber der Ton wird trotzdem noch während des Eingebens gespielt...
Wie sieht denn der Code aus?

Irgendetwas musst du machen, auch wenn nicht Enter gedrückt wurde, sonst würde das nicht passieren.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
marcelrusi Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 11.01.12 20:57 
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_Return then
if Edit1.Text = '1' then
PlaySound(PChar('1.wav'), hInstance, SND_ASYNC);
...
if Edit1.Text = '10' then
PlaySound(PChar('10.wav'), hInstance, SND_ASYNC);
end;


procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text = '1' then
PlaySound(PChar('1.wav'), hInstance, SND_ASYNC);
...
if Edit1.Text = '10' then
PlaySound(PChar('10.wav'), hInstance, SND_ASYNC);
end;

end.


Ist jetz gekürzt hab das mit weitaus mehr Tönen aber die Anzahl tut ja nicht zur Sache...
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 618
Erhaltene Danke: 9

Windows XP/7 Kubuntu
RAD XE2
BeitragVerfasst: Mi 11.01.12 21:38 
Hi,

ich weiß Du bist ein Anfänger, aber so weit solltest Du doch mitdenken können: WEnn bei der Eingabe (verändern - change) schon was kommt - was ist wohl die Aufgabe von Edit1OnChange?

GRüße
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15841
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Mi 11.01.12 21:38 
Überlege doch einmal was du da tust...

In Edit1KeyDown führst du den Code aus, wenn Enter gedrückt wird. So weit so gut. Aber was ist mit Edit1Change?

Außerdem ist dir hoffentlich klar, dass dein Code nicht das selbe ist wie der:
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_Return then
begin
if Edit1.Text = '1' then
PlaySound(PChar('1.wav'), hInstance, SND_ASYNC);
...
if Edit1.Text = '10' then
PlaySound(PChar('10.wav'), hInstance, SND_ASYNC);
end;
end;
(Und das ist wohl eher was du meinst....)

Für diesen Beitrag haben gedankt: marcelrusi
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
marcelrusi Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 11.01.12 21:48 
Dankeschön !

Ja das 2. begin hatte ich vergessen :P Stimmt Edit1Change war unnötig ^^
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home