| Autor |
Beitrag |
Sunnynew1
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 10.09.07 17:16
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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Mo 10.09.07 18:04
KeyDown, KeyPress, Inc, PlaySound, Mediaplayer
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
bflegel
      
Beiträge: 193
Erhaltene Danke: 1
Win XP, Win 7, BS2000
D5
|
Verfasst: Mo 10.09.07 18:06
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
_________________ I know all the jokes about my name
|
|
Sunnynew1 
Hält's aus hier
Beiträge: 14
|
Verfasst: Mo 10.09.07 18:16
könntest du mir auch sagen, was genau die Befehle bewirken?
mfg Sunny
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: 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
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: 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.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: 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 
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Di 11.09.07 16:34
achja falls du n tutorial über hooks suchst. unter www.dsdt.info gibts eins von asserbad.
lg elundril
|
|
Sunnynew1 
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: 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; |
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
Sunnynew1 
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
      
Beiträge: 193
Erhaltene Danke: 1
Win XP, Win 7, BS2000
D5
|
Verfasst: 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
bye bflegel
//EDIT: Hoppala ich meinte natürlich ... "was Blackheart666 geschrieben hat"
_________________ I know all the jokes about my name
Zuletzt bearbeitet von bflegel am Di 11.09.07 19:13, insgesamt 1-mal bearbeitet
|
|
Sunnynew1 
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
Zuletzt bearbeitet von Sunnynew1 am Di 11.09.07 19:12, insgesamt 1-mal bearbeitet
|
|
Sunnynew1 
Hält's aus hier
Beiträge: 14
|
Verfasst: Di 11.09.07 19:11
|
|
bflegel
      
Beiträge: 193
Erhaltene Danke: 1
Win XP, Win 7, BS2000
D5
|
Verfasst: 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
_________________ I know all the jokes about my name
|
|
Sunnynew1 
Hält's aus hier
Beiträge: 14
|
Verfasst: 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
      
Beiträge: 1296
Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
|
Verfasst: 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
      
Beiträge: 193
Erhaltene Danke: 1
Win XP, Win 7, BS2000
D5
|
Verfasst: 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
_________________ I know all the jokes about my name
|
|
Sunnynew1 
Hält's aus hier
Beiträge: 14
|
Verfasst: Di 11.09.07 20:09
Danke für eure Hilfe
Es funktioniert jetzt alles wunderbar.
mfg Sunny
|
|