Autor Beitrag
Sunnynew1
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: Mo 10.09.07 18:06 
user profile iconSunnynew1 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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 10.09.07 18:16 
user profile iconBlackheart666 hat folgendes geschrieben:
KeyDown, KeyPress, Inc


könntest du mir auch sagen, was genau die Befehle bewirken?

mfg Sunny
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mo 10.09.07 19:07 
user profile iconbflegel 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 Suche in der Entwickler-Ecke HOTKEY.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 11.09.07 14:52 
user profile iconGTA-Place hat folgendes geschrieben:
Oder ein Suche in der Entwickler-Ecke HOTKEY.


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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 11.09.07 15:58 
user profile iconelundril 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: 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".
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 11.09.07 18:42 
Erstmal danke für deine Hilfe
Aber leider gibt es ein problem

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: 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"

_________________
I know all the jokes about my name


Zuletzt bearbeitet von bflegel am Di 11.09.07 19:13, insgesamt 1-mal bearbeitet
Sunnynew1 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 11.09.07 19:11 
Edit:
Sry doppelpost^^
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1296

Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: 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:

ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 11.09.07 20:09 
Danke für eure Hilfe :D
Es funktioniert jetzt alles wunderbar.

mfg Sunny