Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi solange taste gedrücktt tue! ??? (https://www.delphipraxis.net/84837-solange-taste-gedruecktt-tue.html)

flori-da 23. Jan 2007 17:31

Re: solange taste gedrücktt tue! ???
 
danke..es funktioniert. :lol:
ich hab festgestell, das mein erster Timer eine Macke hatte..
Hab es einfach mal in einen neuen eingebaut > und siehe da es funzt.
damit ist das problem gelöst.
Also vielen dank für euere Unterstützung
der flo

Namenloser 23. Jan 2007 17:33

Re: solange taste gedrücktt tue! ???
 
könnte an dem "timer.enabled = false" liegen, probier mal "not timer.enabled".

Aber wieso nicht einfach so:
Delphi-Quellcode:
var
  ImagePosX, ImagePosY: integer;
const
  verschieben= 5;//je größer um so schneller verschieben

procedure TForm1.FormCreate(Sender: TObject);
begin
  ImagePosX:= Image1.Left;
  ImagePosY:= Image1.Top;
  Image1.Parent.DoubleBuffered:= true;
  Timer1.Interval:= 100;
  Timer1.Enabled:= true;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  // nixtun
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if GetAsyncKeyState(VK_LEFT)< 0 then
  begin
    dec(ImagePosX, verschieben);
    Image1.Left:= ImagePosX;
  end;
  if GetAsyncKeyState(VK_RIGHT)< 0 then
  begin
    inc(ImagePosX, verschieben);
    Image1.Left:= ImagePosX;
  end;
  if GetAsyncKeyState(VK_UP)< 0 then
  begin
    dec(ImagePosY, verschieben);
    Image1.Top:= ImagePosY;
  end;
  if GetAsyncKeyState(VK_DOWN)< 0 then
  begin
    inc(ImagePosY, verschieben);
    Image1.Top:= ImagePosY;
  end;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  // Nix tun
end;
edit: doofer kasten :(

inherited 23. Jan 2007 19:44

Re: solange taste gedrücktt tue! ???
 
Ääääääääh. Nimm mir das jetzt nich Übel, NamenLozer, aber warum postest du das?
Ziemlich genau so macht er es jetzt. Außerdem kannst du dir die beiden Variablen in den A... sparen, genauso wie du das Image1.Parent weglassen kannst

xZise 23. Jan 2007 21:56

Re: solange taste gedrücktt tue! ???
 
Auch wenn es inherited auf den Punkt gebracht hat:
Er brauch an sich nicht so viel Code ;)
Es reicht nur zu sagen, dass man ein Timer brauch, und im OnTimer das überprüft (GetAsyncKeyState). ggf. die Überprüfung mit Code.
Aber dein Beitrag ist ggf. kontraproduktiv dadurch, dass man, wenn man kein Bild bewegen will sondern z.B. eine Zahl, man die ganzen Sachen drum herum wieder entfernen muss...
Abgesehen davon wurde (Pseudo)Code schon 2 mal (o.s.ä.) genannt. Es happerte nur am Verständnis...

PS: Der erste Satz ist an sich falsch.
Weil der Aufruf
Delphi-Quellcode:
not Timer.Enabled
nichts macht außer den anderen Booleanwert zurückzuegeben ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz