Zdarzenie wygenerowane po wciśnięciu wybranego klawisza
Cel
Chcemy uzyskać efekt, aby po wciśnieciu jednej ze strzałek na klawiaturze komponent Shape został przesunienty o 10 pixeli w wybraną stronę.
Końcowy efekt

Potrzebne komponenty
Metoda
1) Wstawiamy komponenty, wypisane w powyższej tabeli i zmieniamy im właściwość name na taką jaka jest w kolumnie "Nazwa"
2) Klikamy w pustym miejscu formularza i z zakłądki Events wybieramy zdarzenie OnKeyDown. Wpisujemy poniższy kod:
3) Uruchamiamy program.
Porady
W powyższym przykładzie poznałeś wirtualne kody klawiszy strzałek. Poniżej znajdziesz kody jeszcze kilku podstawowych klawiszy:
Kod źródłowy
Chcemy uzyskać efekt, aby po wciśnieciu jednej ze strzałek na klawiaturze komponent Shape został przesunienty o 10 pixeli w wybraną stronę.
Końcowy efekt

Potrzebne komponenty
Nazwa |
Klasa |
Shape1 |
TShape |
Metoda
1) Wstawiamy komponenty, wypisane w powyższej tabeli i zmieniamy im właściwość name na taką jaka jest w kolumnie "Nazwa"
2) Klikamy w pustym miejscu formularza i z zakłądki Events wybieramy zdarzenie OnKeyDown. Wpisujemy poniższy kod:
if Key = VK_LEFT then Shape1.left := Shape1.left - 10;
if Key = VK_RIGHT then Shape1.left := Shape1.left + 10;
if Key = VK_UP then Shape1.top := Shape1.top - 10;
if Key = VK_DOWN then Shape1.top := Shape1.top + 10;
3) Uruchamiamy program.
Porady
W powyższym przykładzie poznałeś wirtualne kody klawiszy strzałek. Poniżej znajdziesz kody jeszcze kilku podstawowych klawiszy:
| Kod klawisza: | Nazwa klawisza: |
| VK_RETURN | Enter |
| VK_SPACE | Spacja |
| VK_ESC | Esc |
| VK_SHIFT | Shift |
| VK_CONTROL | Ctrl |
| VK_MENU | Alt |
| VK_TAB | Tab |
| VK_BACK | Backspace |
| VK_INSERT | Insert |
| VK_HOME | Home |
| VK_PRIOR | Page Up |
| VK_DELETE | Delete |
| VK_END | End |
| VK_NEXT | Page Down |
| VK_0 ... VK_9 | 0 - 9 |
| VK_NUMPAD0 ... VK_NUMPAD9 | Numeryczne 0 - 9 |
| VK_A ... VK_Z | Litery od A do Z |
| VK_F1 ... VK_F12 | F1 - F12 |
| VK_DIVIDE | Dzielenie |
| VK_MULTIPLY | Mnożenie |
| VK_SUBTRACT | Odejmowanie |
| VK_ADD | Dodawanie |
Kod źródłowy
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Shape1: TShape;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_LEFT then Shape1.left := Shape1.left - 10;
if Key = VK_RIGHT then Shape1.left := Shape1.left + 10;
if Key = VK_UP then Shape1.top := Shape1.top - 10;
if Key = VK_DOWN then Shape1.top := Shape1.top + 10;
end;
end.
Materiał dodany przez użytkownika: alphan
