Z tym problemem miałem styczność niedawno przy pisaniu mojej pierwszej i w dodatku dużej gry, w tym tutorialu opiszę jak ja sobię poradziłem z tym problemem.

Zrobiłem oddzielny program tzw. konfigurator a w nim opcje ustawień klawiszy i trybu graficznego, a po ustawieniach wszystko zapisywane jest w pliku *.ini, zaczynajmy: na początku na formę należy dodać następujące komponenty:
PowerInput
kilka LabeledEdit (dostępne od Delphi 7, użytkownicy starszych wersji Delphi mogą użyć Edit, w każdym właściwość ReadOnly ustaw na True)
Button (z Captionem 'Zapisz’)

W sekcji uses dopisz :

W var dodaj :

oraz

w FormCreate należy dodać wpis:

Liczby na końcu każdej funkcji to domyślne wartości strzałek, program wsadza je do zmiennych jeśli plik ustawienia.ini lub wpis w nim nie istnieje. Teraz procedura sprawdzająca każdy klawisz:

Działania pętli for chyba nie muszę tłumaczyć 😉
Tylko jeśli chcesz ją użyć to w sekcji type musisz dodać wpis:

procedure Klawisz(var PoleTex: TLabeledEdit);
musisz jej użyć w zdarzeniu OnKeyDown każdego LabeledEdit’a np. tak:

Klawisz(LabeledEdit1);
W każdym musi być nazwa którą dałeś danemu LabeledEdit’owi !!!

Na zakończenie procedura zapisująca wszystkie wartości, jeśli będziesz chciał je odczytać, to musisz użyć procedury którą masz w FormCreate oraz w grze np. w zdarzeniu PowerTimer’a dać wpis np.

Program ma działać w taki sposób, że po kliknięciu na pole textowe Edit’a, a potem naciśnięciu jakiegoś klawisza w pole tekstowe jest wpisywana wartość liczbowa PowerInput’owego klawisza. Jeśli nie znasz plików ini to zapoznaj się z innym tutorialem na tej stronie w dziale „Zaawansowane”. Do obsługi PowerInput’a też jest, przyjemnego i długiego pisania gier 😉

Zapomniałem dodać dość ważnej rzeczy. Do FormCreate należy dopisać, aby w każdym LabeledEdit’cie pojawiła się liczba z pliku INI np.

Tak do każdej zmiennej i LabeledEdit’a.

Jakbyś miał jakieś pytania to pisz na maila na ssspine@go2.pl

Autor: Spine