2007-10-22, 19:05
  #1
Medlem
Hej! jag sitter med former nu. Har precis gtt ver frn att sitta i dos milj till windows milj. Det problem jag har sttt p r att nr jag anvnder mig av funktionen "OnKeyDown" s spelar det ingen roll vilken tangent jag trycker p,
samma funktion krs varje gng jag trycker ner t.ex. a,g,e eller ngon annan tangent. Jag vill begrnsa detta till enbart 1 specifik tangent.

En del av programet ser ut shr:
Citat:
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Button1.top:=(Button1.top+1);
end;

Hur kan jag begrnsa denna funktion till att enbart fungera vid nedtryckning av tangenten S t.ex.?

Tack fr svar =)
Citera
2007-10-23, 00:36
  #2
Medlem
Fr att f reda p vilken knapp som tryckts ner s fr du som en del av eventet parametern Key. Den innehller nummret p tangenten som tryckts ner (S har nummer 83).

S hr skulle ditt event kunna se ut:

Kod:
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
   if (Key = 83) then Button1.top:=(Button1.top+1);
end; 

Fr att f reda p numret fr nskad knapp kan du anvnda fljande kod:


Kod:
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
   ShowMessage(IntToStr(Key));
   // if (Key = 83) then Button1.top:=(Button1.top+1);
end; 

Du fr d en meddelanderuta med numret p den nedtryckta knappen.
Citera
2007-10-26, 18:00
  #3
Medlem
Citat:
Ursprungligen postat av cjh

S hr skulle ditt event kunna se ut:

Kod:
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
   if (Key = 83) then Button1.top:=(Button1.top+1);
end; 


Det dr funkade aldeles utmrkt!
tack s mycket =)
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in