Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Programm mit Tastatur steuern? (https://www.delphipraxis.net/129523-programm-mit-tastatur-steuern.html)

AlexII 20. Feb 2009 14:36

Re: Programm mit Tastatur steuern?
 
Na endlich :thumb:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
If Key=VK_RIGHT then showmessage('Rechts');
If Key=VK_LEFT then showmessage('Links');
end;

Jakob Ullmann 20. Feb 2009 15:19

Re: Programm mit Tastatur steuern?
 
Übrigens: Wenn sich da nicht alles geändert hat, findet man eine Liste der VK-Konstanten unter Delphi-Referenz durchsuchenVirtuelle Tastencodes. :angel2:

edit: Zur Not wäre auch noch GetAsyncKeystate / GetKeystate möglich (falls man eine sofortige Reaktion wünscht):

Delphi-Quellcode:
procedure TFormX.TimerXTimer(Sender: TObject);
// -------------------^ Intervall klein
begin
  if GetAsyncKeystate(VK_LEFT) < 0 then
    ShowMessage('Links');
end;

AlexII 20. Feb 2009 20:49

Re: Programm mit Tastatur steuern?
 
Irgendwie reagierеt das Programm auf die Right- u. Downtaste ganz komisch und das liegt nicht am Code, denn wenn ich die Funktion der Lefttaste (was sehr gut funkt) der rechten zuweise - spinnt das Prog. Wird der Code wieder zurück der linken zugewiesen geht alles ok.

Also bei den Right- und Downtaste funktioniert alles ok, bei den Left- und Uptaste nicht. :gruebel:

AlexII 20. Feb 2009 22:01

Re: Programm mit Tastatur steuern?
 
Kann mir niemand helfen? :pale:

hoika 21. Feb 2009 10:36

Re: Programm mit Tastatur steuern?
 
Hallo,

ohne Code ?

< es liegt nicht am Code >

Hm, im Explorer funktionieren alle 4 Tasten,
was MS da wohl wieder verbrochen hat ...

Im Ernst: Natürlich liegt es an deinem Code!

Hänge mal ein Minimal-Programm (ohne Exe),
was das Problem zeigt an den nächsten Post.


Heiko

AlexII 21. Feb 2009 13:03

Re: Programm mit Tastatur steuern?
 
Ich weise den beiden Tasten die gleiche Funktion zu und sie arbeiten unterschiedlich. Ich spinne doch nicht. Die selbe Funktion, per VK_Left funkt alles richtig, VK_Right nicht. :wall: VK_Up auch ok, VK_Down spinnt wie die VK_Right.

hoika 21. Feb 2009 14:57

Re: Programm mit Tastatur steuern?
 
Hallo,

und was sollen wir ohne Code tun ?
Raten ?

Ich weiss ja nicht mal, was die aktuell auf deinem Form hast.

Mach ein Minimal-Bsp., was sich kompilieren läßt,
und hänge es an ein Post.


Heiko

AlexII 21. Feb 2009 19:33

Re: Programm mit Tastatur steuern?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier der Code

Delphi-Quellcode:
procedure TForm1.dsAnzeigen;
begin
Label1.Caption:=losungen[z].ntvers;
Label2.Caption:=losungen[z].ntversst;
Label1.Width:=328;
Image19.Hint:=losungen[z].ntversst;
end;

procedure TForm1.Image16Click(Sender: TObject);
begin
if z=366 then
begin
z:=1;
dsAnzeigen;
Panel1.Visible:=True;
Panel1.SetFocus;
Panel1.Visible:=False;
ComboBox1.ItemIndex:=0;
end else
    begin
    Inc(z);
    dsAnzeigen;
    Panel1.Visible:=True;
    Panel1.SetFocus;
    Panel1.Visible:=False;
    ComboBox1.ItemIndex:=0;
    end;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
If Key=VK_Left then
begin
Image16Click(Sender);
end;
If Key=VK_Right then
begin
Image16Click(Sender);
end;
end;
Jetzt das Problem - beide Tasten haben die gleiche Aufgabe. Jetzt wählt mal in der ComboBox irgendwas aus, falls die Stelle falsch ist - erscheint das oben-rechts im Form. Jetzt klickt man die linke Taste kommt ein neuer Vers, die Fehlermeldung verschwindet und in der ComboBox erscheint der Text "Der Vers steht in...?" So muss es auch sein!
Jetzt macht man das selbe mit der rechten Taste - spinnt das Prog, die Fehlermeldung verschwindet nicht und die ComboBox1.Text bekommt den ItemIndex:=1 obwohl es die 0 sein muss. Wenn man aber die Taste das zweite mal klickt geht wieder alles ok.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:28 Uhr.
Seite 3 von 3     123   

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