AGB  ·  Datenschutz  ·  Impressum  







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

Timer gestartet....KeyDown abfragen

Ein Thema von Haegar · begonnen am 24. Feb 2003 · letzter Beitrag vom 24. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#1

Timer gestartet....KeyDown abfragen

  Alt 24. Feb 2003, 20:03
hiho,
ich habe in meinem programm eine timer-kompo....die wird irgendwann aktiviert, und timed so vor sich hin.
nun will ich aber während dessen mit TForm1.Form1KeyDown afragen ob eine taste gedrückt wird. reicht das wenn ich die prozedur einfach nur erstelle (also ganz normal irgendwo im impementation-teil), oder muss ich die irgendwie in verbindung mit dem timer bringen??

danke schonmal
ciao haegar
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2

Re: Timer gestartet....KeyDown abfragen

  Alt 24. Feb 2003, 21:14
Hiho Haegar,
Zitat von Haegar:
nun will ich aber während dessen mit TForm1.Form1KeyDown afragen ob eine taste gedrückt wird. reicht das wenn ich die prozedur einfach nur erstelle (also ganz normal irgendwo im impementation-teil), oder muss ich die irgendwie in verbindung mit dem timer bringen??
1. Im OJ für Form1 KeyPress auf True stellen.
2. Verwende die Prozedur OnKexPress von Form1.
Sobald eine Taste gedrückt wird, tritt dies ein.
Mir ist nicht ganz Klar was Du mit dem Timer willst?!

Grüsse, Daniel
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 24. Feb 2003, 21:26
also der timer, läst ein object immer neu zeichnen, und die taste muss dauerhaft gedrükt werden. ich dachte das dauerhaft drücken is nur im KeyDown-ereigniss.
mal sehen obs klappt
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#4
  Alt 24. Feb 2003, 21:34
also ich hab KeyPreview (meintest du das, hab KeyPress nicht gefunden) auf true gesetzt, und in Ereignissbehandlungsroutine folgendes zu stehen
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
 if Key=CHR(VK_UP) then
  auto1.schneller(1.5);
 if Key=CHR(VK_DOWN) then
  auto1.bremsen(2);
end;
alles wunderbar, doch reagiert nix, das object(auto1) sollte sich demnach nach rechts bewegen, oder nach links, je nachdem!

hier die timer-proz + anzeigen-proz.
Delphi-Quellcode:
procedure anzeigen(auto:TAuto);
begin
 auto.zeichnen(Form1.Image1.Canvas);
 auto.x:=auto.x+Trunc(auto.v);
 auto.zeichnen(Form1.Image1.Canvas);
end;

procedure TForm1.TimerTimer(Sender: TObject);
begin
 anzeigen(auto1);
end;
is irgendwas nicht korrekt??
kann aber nicht sein, das der timer die ganze sache irgendwie "unterbricht" (solange er lauft) oder?
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#5
  Alt 24. Feb 2003, 21:35
KeyDown ist so wie es heißt. Das wird nur bei Runterbewegen der Taste ausgelöst.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#6
  Alt 24. Feb 2003, 21:38
1. warum zeichnest du das Auto immer doppelt?

2. sicher, dass sie "bremsen" und "beschleunigen" - procedures klappen?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#7
  Alt 24. Feb 2003, 21:39
Zitat von Haegar:
also ich hab KeyPreview (meintest du das, hab KeyPress nicht gefunden) auf true gesetzt, und in Ereignissbehandlungsroutine folgendes zu stehen
So war das gemeint.
Versuch mal folgendes:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  ShowMessage(Key);
end;
Und schau ob wirklich die Tasten erkannt werden und ob es auch die richtigen sind.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#8
  Alt 24. Feb 2003, 21:42
äh naja hab ich mir vielleicht falsch abgeguckt, bei beispielen im buch war auch immer doppelt (übermalen...neue pos...neu malen -> dachte das soll so sein)
´bin ja erst reingestolpert in die 2d-grafiken.
die prozeduren sollten eigentlich stimmen.
Delphi-Quellcode:
procedure TAuto.schneller(dv:real);
begin
 v:=v+dv;
 if v>=30 then
  v:=30;
end;

procedure TAuto.bremsen(dv:real);
begin
 v:=v-dv;
 if v<=-10 then
  v:=-10;
end;
hmm...ich weiß ja net, hoffentlich fällt euch was auf/ein!?

gruß haegar
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#9
  Alt 24. Feb 2003, 21:46
da wird nix angezeigt!? soll das etwa doch bedeuten das der timer primär läuft, und die anderen sachene erst weiter gehen, wenn timer ausgeschaltet is?.......aha auch wenn ich den timer noch nicht starte, zeigt er nichts über showmessage(Key); an
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#10
  Alt 24. Feb 2003, 21:46
so wie ich das sehe wird zwar die Geschwindigkeit immer geändert (v) aber die Position (x) nicht.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:47 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