138 lines
3.1 KiB
Markdown
138 lines
3.1 KiB
Markdown
# KEYBOARD
|
|
|
|
Wbudowany obiekt reprezentujący stan klawiatury. Dostępny pod globalną nazwą `KEYBOARD` z dowolnego kontekstu (zobacz [Obiekty wbudowane](../engine/globals.md#obiekty-wbudowane)). Obsługuje zdarzenia naciśnięcia oraz zwolnienia klawiszy, w tym tryb autorepeat.
|
|
|
|
## Metody
|
|
|
|
### DISABLE
|
|
|
|
```
|
|
void DISABLE()
|
|
```
|
|
|
|
Wyłącza obsługę zdarzeń klawiatury — sygnały klawiszy przestają być emitowane.
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
KEYBOARD^DISABLE();
|
|
```
|
|
|
|
### ENABLE
|
|
|
|
```
|
|
void ENABLE()
|
|
```
|
|
|
|
Włącza obsługę zdarzeń klawiatury.
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
KEYBOARD^ENABLE();
|
|
```
|
|
|
|
### GETLATESTKEY
|
|
|
|
```
|
|
STRING GETLATESTKEY()
|
|
```
|
|
|
|
Zwraca nazwę ostatnio wciśniętego klawisza.
|
|
|
|
**Zwraca**: nazwa klawisza w postaci akceptowanej przez [`ISKEYDOWN`](#iskeydown) (zobacz [Obsługiwane klawisze](#obslugiwane-klawisze)).
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
KEYBOARD^GETLATESTKEY();
|
|
```
|
|
|
|
### ISENABLED
|
|
|
|
```
|
|
BOOL ISENABLED()
|
|
```
|
|
|
|
Sprawdza, czy obsługa klawiatury jest włączona.
|
|
|
|
**Zwraca**: [`BOOL`](BOOL.md) — `TRUE`, jeżeli klawiatura reaguje na zdarzenia.
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
KEYBOARD^ISENABLED();
|
|
```
|
|
|
|
### ISKEYDOWN
|
|
|
|
```
|
|
BOOL ISKEYDOWN(STRING keyName)
|
|
```
|
|
|
|
Sprawdza, czy podany klawisz jest aktualnie wciśnięty.
|
|
|
|
**Parametry**
|
|
|
|
- `keyName` — nazwa klawisza (zobacz [Obsługiwane klawisze](#obslugiwane-klawisze)).
|
|
|
|
**Zwraca**: [`BOOL`](BOOL.md) — `TRUE`, jeżeli klawisz jest wciśnięty. Dla nieznanej nazwy zwracane jest `FALSE`.
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
KEYBOARD^ISKEYDOWN("UP");
|
|
KEYBOARD^ISKEYDOWN("LEFT");
|
|
KEYBOARD^ISKEYDOWN(ARRAYKEYBOARD^GET(0));
|
|
```
|
|
|
|
### SETAUTOREPEAT
|
|
|
|
```
|
|
void SETAUTOREPEAT(BOOL autorepeat)
|
|
```
|
|
|
|
Ustawia, czy sygnał [`ONKEYDOWN`](#onkeydown) ma być emitowany cyklicznie tak długo, jak klawisz pozostaje wciśnięty. Domyślnie wyłączone.
|
|
|
|
**Parametry**
|
|
|
|
- `autorepeat` — `TRUE`, aby włączyć powtarzanie.
|
|
|
|
**Przykłady**
|
|
|
|
```
|
|
KEYBOARD^SETAUTOREPEAT(FALSE);
|
|
```
|
|
|
|
## Sygnały
|
|
|
|
### ONKEYDOWN
|
|
|
|
Wywoływany po naciśnięciu klawisza. Sygnał jest [parametryzowany](../engine/events.md#sygnaly-parametryzowane) nazwą klawisza — pozwala podpiąć osobną obsługę pod każdy z nich:
|
|
|
|
```
|
|
KEYBOARD:ONKEYDOWN^UP=BEHGOUP
|
|
KEYBOARD:ONKEYDOWN^DOWN=BEHGODOWN
|
|
```
|
|
|
|
Przy włączonym autorepeacie ([`SETAUTOREPEAT(TRUE)`](#setautorepeat)) sygnał jest emitowany w każdej klatce, w której klawisz pozostaje wciśnięty.
|
|
|
|
### ONKEYUP
|
|
|
|
Wywoływany po zwolnieniu klawisza. Sygnał jest parametryzowany nazwą klawisza, analogicznie do [`ONKEYDOWN`](#onkeydown).
|
|
|
|
### ONCHAR
|
|
|
|
Wywoływany po naciśnięciu klawisza dla każdego wygenerowanego znaku. Sygnał jest parametryzowany nazwą klawisza.
|
|
|
|
## Obsługiwane klawisze {#obslugiwane-klawisze}
|
|
|
|
Klawiatura silnika rozpoznaje następujące nazwy klawiszy:
|
|
|
|
- **Funkcyjne**: `F1`, `F2`, `F3`, `F4`, `F5`, `F6`, `F7`, `F8`, `F9`, `F10`, `F11`, `F12`
|
|
- **Strzałki**: `UP`, `DOWN`, `LEFT`, `RIGHT`
|
|
- **Modyfikatory**: `LSHIFT`, `RSHIFT`, `LCTRL`, `RCTRL`, `LALT`, `RALT`, `CAPSLOCK`
|
|
- **Specjalne**: `ESC`, `ENTER`, `SPACE`, `TAB`, `INSERT`, `PGUP`, `PGDN`, `HOME`
|
|
- **Litery**: `Q`, `W`, `E`, `R`, `T`, `U`, `I`, `O`, `P`, `A`, `S`, `D`, `F`, `G`, `H`, `J`, `K`, `L`, `C`, `V`, `B`, `N`, `M`
|
|
- **Cyfry**: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`
|