maxiu1989 napisał(a)
(bo VK_A jakos nie dziala)
Ponieważ nie ma czegoś takiego jak VK_A, VK_B ... VK_Z, tych stałych nie zadeklarowano; Za to parametr Key w zdarzeniu OnKeyDown jest typu Word, więc możesz się odwołać po numerze ASCII znaku w systemie szesnastkowym; W załaczniku masz plik z wszystkimi (przynajmniej najważniejszymi) kodami klawiszy;
Jeśli chodzi o klawisze specjalne, takie jak Shift, Control czy Alt - w zdarzeniach OnKeyDown i OnKeyUp masz parametr Shift typu TShiftState - jest to zbiór, w którym przechowywany jest stan wciśniętych klawiszy specjalnych;
Możliwe wartości w tym typie (źródło - pomoc DB7):
| Value |
Meaning |
| ssShift |
The Shift key is held down |
| ssAlt |
The Alt key is held down |
| ssCtrl |
The Ctrl key is held down |
| ssLeft |
The left mouse button is held down |
| ssRight |
The right mouse button is held down |
| ssMiddle |
The middle mouse button is held down |
| ssDouble |
The mouse was double-clicked |
Jeśli chcesz sprawdzić, czy wciśnięty jest np. klawisz Shift, sprawdzasz to w standardowy sposób dla zbiorów: |
|
Kopiuj
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if ssShift in Shift then
ShowMessage('Klawisz SHIFT wciśnięty!')
else
ShowMessage('Brak klawisza SHIFT...');
end;
Jak widać sprawdzenie nie jest najtrudniejsze; Jeżeli potrzebujesz sprawdzić stan wciśnięcia jednego ze specjalnych klawiszy (któregoś z powyższej tabelki) - sprawdź to w parametrze Shift, resztę odczytuj z parametru Key;
Na inne pytania odpowiem jutro, sam już trochę procentów mam...