Entwickler-Ecke
Multimedia / Grafik - Sound Counter
Sunnynew1 - Mo 10.09.07 17:16
Titel: Sound Counter
Hi Leute!
Ich hab mal wieder paar Fragen an euch.
Und zwar möchte ich gerne ein keines Programm herstellen, dass so aussehen soll:
Ist ist ein Counter der jedes mal, wenn man eine bestimmte Taste drückt (z.B. f3) auf einem Label anzeigt wie oft ich diese Taste gedrückt habe.
Außerdem soll man in einer Textbox eine Zahl eingeben können und wenn die Zahl (z.B 10) beim drücken erreicht ist, soll ein sound abgespielt werden.
Das Programm soll am besten mit 1 Label, 1 Button (Reset Button) und 1 Textbox funktionieren, damit es simpel bleibt.
Außerdem wäre es noch sehr gut wenn man das Programm minimieren könnte und es trotzdem weiter funktioniert. Also das man nicht gezwungen ist, dass Programmfenster offen zu halten, wenn man die Taste drückt.
Ich hab zwar nach so einem Programm gesucht aber nichts gescheites gefunden.
So das wars...
Ich hoffe ihr könnt mir helfen.
mfg Sunny
Blackheart666 - Mo 10.09.07 18:04
KeyDown, KeyPress, Inc, PlaySound, Mediaplayer
bflegel - Mo 10.09.07 18:06
Titel: Re: Sound Counter
Sunnynew1 hat folgendes geschrieben: |
Hi Leute!
Außerdem wäre es noch sehr gut wenn man das Programm minimieren könnte und es trotzdem weiter funktioniert. Also das man nicht gezwungen ist, dass Programmfenster offen zu halten, wenn man die Taste drückt.
|
Da wird die Sache schon schwieriger... Wenn Dein Fenster den Fokus verliert, kann Dein Programm nicht mehr zählen. Evtl. musst Du da mit Tastatur-Hooks arbeiten... hab ich allerdings auch noch nicht ausprobiert!
bye bflegel
Sunnynew1 - Mo 10.09.07 18:16
könntest du mir auch sagen, was genau die Befehle bewirken?
mfg Sunny
elundril - Mo 10.09.07 18:40
keydown is wenn die taste gedrückt wurde. ob losgelassen auch oder nicht kümmert dieses event nicht.
keypress ist wenn eine tase gedrückt wurde.
mit inc kannst du integer, int64, und sonstige zahlenwerte um 1 oder eine gewisse anzahl erhöhen.
für nähere infos gibts ein eigens mitgeliefertes programm, genannt Hilfe. ;-)
lg elundril
GTA-Place - Mo 10.09.07 19:07
bflegel hat folgendes geschrieben: |
| Da wird die Sache schon schwieriger... Wenn Dein Fenster den Fokus verliert, kann Dein Programm nicht mehr zählen. Evtl. musst Du da mit Tastatur-Hooks arbeiten... hab ich allerdings auch noch nicht ausprobiert! |
Oder ein
HOTKEY.
elundril - Di 11.09.07 14:52
jop aber ein Hotkey kann ja nur von einem programm verwendet werden, deshalb kann es sein das man nicht alle tasten abfragen kann. insofern ist ein hook schon besser würd ich sagen.
lg elundril
Sunnynew1 - Di 11.09.07 15:58
elundril hat folgendes geschrieben: |
für nähere infos gibts ein eigens mitgeliefertes programm, genannt Hilfe. ;-)
lg elundril |
das problem ist aber, dass ich delphi in eng habe und da einiges nicht verstehe :S
trotzdem danke an alle
elundril - Di 11.09.07 16:34
achja falls du n tutorial über hooks suchst. unter
http://www.dsdt.info gibts eins von asserbad.
lg elundril
Sunnynew1 - Di 11.09.07 17:33
Kann vielleicht einer von euch mir das Programm ansatzweise vorprogrammieren?
Es muss nicht mit Hooks oder Hotkeys sein.
Hauptsache eine basis woran ich arbeiten kann.
Ich hab versucht über die delphi help das programm selber zu machen, bin aber leider gescheitert.
mfg Sunny
Blackheart666 - Di 11.09.07 18:08
Schau doch mal hier im DF nach den Begriffen die Dir genannt wurden dann kommst Du auch allein weiter, das Programm wird Dir hier bestimmt keiner schreiben - "sag Ich jetzt mal so".
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = 'a' then begin Inc(Count); Caption:=IntToStr(Count); end; end; |
Sunnynew1 - Di 11.09.07 18:42
Erstmal danke für deine Hilfe
Aber leider gibt es ein problem
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| begin if Key = 'a' then begin Inc(Count); Caption:=IntToStr(Count); end; end; |
[/quote]
delphi makiert mir den Befehl 'Inc(Count)' als falsch
mit der antwort:
[Error] Unit1.pas(31): Incompatible types: 'String' and 'Word'
[Error] Unit1.pas(33): Undeclared identifier: 'Count'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
bflegel - Di 11.09.07 18:57
Ne bescheidene Anfrage:
Hast Du schon mal was in Delphi gemacht?
Was sunny da geschrieben hat ist nur ein Auszug! Die Variable muss natürlich noch deklariert werden. Und ausserdem ist "Count" für einen Variablennamen in meinen Augen etwas unglücklich gewählt.
Auch mit "Caption:=IntToStr(Count);" wirst Du nicht allzu viel freude haben. Da fehlt noch was :wink:
bye bflegel
//EDIT: Hoppala ich meinte natürlich ... "was Blackheart666 geschrieben hat"
Sunnynew1 - Di 11.09.07 19:10
Ich hab Delphi seit 3 Wochen in der Schule. 3 Stunden in der Woche^^
Da darfst du noch nicht so viel erwarten. Wir lernen zurzeit nur sehr simple sachen.
Tut mir leid, wenn meine Frage etwas dumm war ;)
Ok Count is eine Variabel. DIe muss ich ja zuordnen, aber wie kann ich der Variabel einen "Counter" zuordnen?
Tut mir leid. Aber meine Delphi kenntnisse sind sehr bescheiden und begrenzen sich auf sehr einfache Sachen.
Ich hoffe ihr könnt mir weiter helfen.
mfg Sunny
Sunnynew1 - Di 11.09.07 19:11
Edit:
Sry doppelpost^^
bflegel - Di 11.09.07 19:25
Ok... war auch nicht böse gemeint.
Schreibe mal in den Kopf der Unit (wo üblicherweise steht:)
var
Form1: TForm1;
noch dazu:
zaehler : integer;
// dadurch wird die Variable global deklariert, d.h.
// sie kann in dem ganzen Programm genutzt werden, und
// nicht nur in der einzelnen Procedure
Dann ersetze in Deiner Procedure "Count" durch "zaehler" und schreibe vor "Caption := "
ein "Label1." Es muss dann so aussehen:
Inc(zaehler);
Label1.Caption:=IntToStr(zaehler);
Dann zählt er bei jedem Drücken von a eins hoch und zeigt es im Label an.
Bye bflegel
Sunnynew1 - Di 11.09.07 19:44
DANKE
es funktioniert wunderbar.
Nur möchte ich gerne anstadt von "a" "f5" als Taste benutzen.
Leider funktioniert es nicht wenn ich "f5" angebe.
Was muss ich da angeben, damit es mit f5 funktioniert?
Danke in vorraus.
mfg Sunny
Wolle92 - Di 11.09.07 19:54
hmm... ist ne gute Frage... ich bekomme kein OnKeyPress-Event wenn ich eine der F-Tasten drücke...
bflegel - Di 11.09.07 20:04
Ob man die F-Tasten im OnKeyPress abfragen kann weiss ich nicht genau (es sind ja Sondertasten)...
Wenn Du Deine Procedure allerdings ins KeyDown reinlegst anstatt ins KeyPress, dann kannst Du über "VK_xxx" die Sondertasten abfragen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = VK_F5 then begin inc (zaehler); Label1.Caption := inttostr(zaehler); end; end; |
Warum das so ist muss Dir jemand erklären der mehr Erfahrung in Delphi hat wie ich.
Ich werde mich nun für heute ausklinken.
Einen schönen Abend noch.
Bye bflegel
Sunnynew1 - Di 11.09.07 20:09
Danke für eure Hilfe :D
Es funktioniert jetzt alles wunderbar.
mfg Sunny
Wolle92 - Di 11.09.07 20:20
bflegel hat folgendes geschrieben: |
...
Warum das so ist muss Dir jemand erklären der mehr Erfahrung in Delphi hat wie ich.
... |
ALS!
"als ich"
bflegel - Di 11.09.07 20:34
Ok großer Meister der deutschen Rechtschreibung :flehan:
Ich schreib manchmal wia ma da Schnabl g'wachsn is...
das hier ist ja auch ein Delphi-Forum, und kein Deutsch-Forum. Wenn Du alle Rechtschreibfehler und grammatikalisch falsche Ausdrücke korrigieren willst, dann hast Du viel zu tun.
In diesem Sinne...
einen schönen Abend und Servus aus Bayern
bflegel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!