AGB  ·  Datenschutz  ·  Impressum  







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

KeyPress Problem

Ein Thema von thomas2009 · begonnen am 22. Jan 2009 · letzter Beitrag vom 22. Jan 2009
Antwort Antwort
thomas2009
(Gast)

n/a Beiträge
 
#1

KeyPress Problem

  Alt 22. Jan 2009, 02:17
Hallo
der Panel bewegt immer mit 10 Pixel !
egal ob ich die taste Pfeil allein oder CTRL+Pfeil Taste
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if ((Key = 17) and (Key = 39)) then begin
 Panel1.left:= Panel1.left+1;
end;

 if Key = 39 then begin
Panel1.left:= Panel1.left+10;
end;
end;
Woran liegt es dann ?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: KeyPress Problem

  Alt 22. Jan 2009, 04:23
Zitat von thomas2009:
if ((Key = 17) and (Key = 39)) then begin
Eigentlich sollte an der Stelle die Warnung vom Compiler erscheinen, dass die Bedingung nie erfüllt werden kann. Wie auch? Wie soll ein Wert denn gleichzeitig 17 UND 39 sein?

Wenn du den Status der Tasten Shift, Strg usw. auslesen möchtest, dann schau dir doch einmal den Wert des Parameters Shift an.
Sebastian Jänicke
  Mit Zitat antworten Zitat
hitzfeld

Registriert seit: 20. Jan 2009
Ort: München
7 Beiträge
 
#3

Re: KeyPress Problem

  Alt 22. Jan 2009, 06:14
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if ((Key = 17) and (Key = 39)) then begin
Panel1.left:= Panel1.left+1;
end;

if ((Key <> 17) and Key = 39)) then begin
Panel1.left:= Panel1.left+10;
end;
end;
Vielleicht hilft das?

Gerd
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: KeyPress Problem

  Alt 22. Jan 2009, 07:10
Zitat von hitzfeld:
if ((Key = 17) and (Key = 39))

Wie soll das gehen?
Ich habe das doch schon geschrieben...

Vielleicht anders... Das ist wie wenn du im Laden sagst:
Wenn diese Frucht eine Banane ist UND diese Frucht eine Ananas ist, dann nehme ich sie.

Kann die selbe Frucht jemals eine Banane UND eine Ananas gleichzeitig sein? Nein. Genauso wenig kann Key gleichzeitig 17 UND 39 sein...

Die richtige Lösung ist die Abfrage des Parameters Shift.
Sebastian Jänicke
  Mit Zitat antworten Zitat
HighSpeed

Registriert seit: 13. Jan 2009
25 Beiträge
 
#5

Re: KeyPress Problem

  Alt 22. Jan 2009, 07:12
Es müsste wohl eher so aussehen:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (ssCtrl in Shift) and (Key = 39) then
  Panel1.left := Panel1.left + 1;
 end else if Key = 39 then
  Panel1.left:= Panel1.left+10;
end;
...meins !?
  Mit Zitat antworten Zitat
HighSpeed

Registriert seit: 13. Jan 2009
25 Beiträge
 
#6

Re: KeyPress Problem

  Alt 22. Jan 2009, 07:17
Wichtig ist das else, da die 2. Bedingung in beiden Fällen erfüllt ist und ausgeführt werden würde.
...meins !?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#7

Re: KeyPress Problem

  Alt 22. Jan 2009, 08:18
@HighSpeed: Da war dann doch ein end zuviel...

Etwas anders formuliert funktioniert es auch:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = 39 then begin
    if ssCtrl in Shift then
      Panel1.left := Panel1.left + 1
    else
      Panel1.left := Panel1.left + 10;
    Key := 0; // optional, damit kein anderes Control mehr auf den Key reagieren kann
  end;
end;
Uwe Raabe
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#8

Re: KeyPress Problem

  Alt 22. Jan 2009, 13:53
es ging nun
Ich habe allerdings ein ganz neues Projekt erstellt.

Danke
  Mit Zitat antworten Zitat
HighSpeed

Registriert seit: 13. Jan 2009
25 Beiträge
 
#9

Re: KeyPress Problem

  Alt 22. Jan 2009, 18:25
@ Uwe Raabe:
stimmt, is beim begin / end löschen wohl irgendwie übrig geblieben...

aber das passiert ja schonmal, wenn man nich alles immer duch n compiler laufen lässt
...meins !?
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: KeyPress Problem

  Alt 22. Jan 2009, 21:07
Zitat von thomas2009:
es ging nun
Ich habe allerdings ein ganz neues Projekt erstellt.

Danke
Wenn du in deinen ettlichen Threads zum Thema Keys mal erwähnt hättest worum es geht oder worauf du hinaus willst, wäre dir und auch andereren damit ziehmlich geholfen.
Blackheart
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:07 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