Jag undrar hur man gör för att kunna läsa in vilka tangetbordskanppar en avändare trycker på. Jag vill kunna göra så att om användaren trycker på t ex pil-upp-tangenten så ska en viss procedur anropas. Testa detta för Pil-upp-tangenten Ännu bättre är att använda OnKeyDown och konstanterna för de olika tangenterna. ÖppnaWindows SDK-hjälpen i D7 och leta efter "Virtual-Key Codes" i hjälpindexet. Där finns allihop. De definieras i modulen Windows, som du normalt använder i alla dina Delphi-moduler. Rent principiellt är det bättre att använda onKeyUp. SÅP: Det vanliga är att programmet reagerar på NEDtryckning av tangenter, men på UPPsläppning av musknapp. Logiken är att om man trycker ner musknappen så måste man först vänta och se om det är en drag-operation innan man kan agera på manövern som en klickning. Vid dubbelklick tror jag däremot att reaktionen brukar komma på andra NERtryckningen. Dock osäker.styra med tangetbordet
Sv: styra med tangetbordet
<code>
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #38 then
begin
//utför någonting...
end;
end;
</code>Sv:styra med tangetbordet
Alltså, för pil upp:
<code>
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_UP then begin
//utför någonting...
end;
end;
</code>
Du bör även kolla Shift, som anger status för skift, ctrl och alt. Om du vill stödja pil upp på numeriska tangentbordet måste du kanske även kolla VK_NUMPAD8, men i så fall bör du även kontrollera att NumLock är av (hur det nu är man gör det...). Du kan "svälja" tangenttryckningen genom att sätta Key:=0 i FormKeyDown.
Mvh,
KjellSv: styra med tangetbordet
Beslutet är defintivt när man släpper tangenten .Sv:styra med tangetbordet
Kan man trycka ned en tangent utan att släppa den?
Det vanliga är att reagera på tangent<b>ned</b>tryckning. Pröva själv att trycka ned en tangent och vänta någon sekund innan du släpper upp den. Är det vid ned eller upp datorn reagerar?Sv: styra med tangetbordet
Mvh,
Kjell