Korišćenje tastera na tastaturi?

Korišćenje tastera na tastaturi?

offline
  • Pridružio: 14 Feb 2011
  • Poruke: 941

Evo tek sam počeo da radim pascal i prvi put se susrećem sa Lazarus okruženjem pa mi treba mala pomoć. Tražio sam na google i nisam uspeo da nađem.

Dakle, imam sliku koja se pomera gore do neke vrednosti kada kliknem neki button (aktivira se timer). E sad, ja hoću da se ta slika pokrene kada pritisnem npr. enter ili space.
Da li je to moguće i kako?

Timer mi je: Timer1
Slika je: bullet
Dugme za aktivaciju timera je: BtnGo

I treba mi još da pomeram sliku (neku drugu, ne tu što ide gore) sa strelicama na tastaturi. Dakle, držim levo i slika ide levo, drzim desno i ide desno (bez gore i dole) i tako dok ne dođe do neke granice (zida).

Hvala Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 07 Jun 2005
  • Poruke: 33
  • Gde živiš: Sombor

Za formu postavi Property "KeyPreview" na True.
I koristi događaje "OnKeyPress" ili "OnKeyDown".

Primer za OnKeyPress:
if Key = #13 then uradi_nesto



offline
  • Pridružio: 14 Feb 2011
  • Poruke: 941

Odlično radi! Svaka čast! Hvala puno Smile Dakle ovo je nešto osnovno a ja ću nadograđivati po svojoj potrebi. Hvala još jednom Ziveli

P.S ako možeš da mi pošalješ tu listu kodova za tastere

offline
  • Fil  Male
  • Legendarni građanin
  • Pridružio: 11 Jun 2009
  • Poruke: 15587

Korisni linkovi:

http://forum.lazarus.freepascal.org/index.php?topic=12682.0
http://wiki.lazarus.freepascal.org/LCL_Key_Handling
http://lazarus-ccr.sourceforge.net/docs/lcl/lcltype/index-2.html

offline
  • Pridružio: 14 Feb 2011
  • Poruke: 941

Ali sad imam jedan problem, držim npr. strelicu desno da pomeram object u desno i kada stisnem "Space" (aktivira Timer) object prestane da se kreće, tj. držim strelicu desno ali ovaj prestane da se kreće. Dakle, bilo koji taster da stisnem dok držim neki, taj će se prekinuti. Npr. držim "Space" da puca i kad stisnem strelicu levo/desno on prestane da puca.
Evo taj deo Koda koji:
procedure TSpaceShooter.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin  if Key=VK_LEFT then bullet.Left := bullet.Left - 10;  if Key=VK_RIGHT then bullet.Left := bullet.Left + 10; Case Key of VK_LEFT : spaceship.Left := spaceship.Left - 10; VK_RIGHT : spaceship.Left := spaceship.Left + 10; VK_SPACE : timerBullet.Enabled:=true; End; end;       

Ko je trenutno na forumu
 

Ukupno su 675 korisnika na forumu :: 62 registrovanih, 5 sakrivenih i 608 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 2413 - dana 03 Okt 2019 05:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: aleksanikolic1979, aleksmajstor, amstel2, babaroga2, Boris902, caesar2, Cranium, damirZR, dane007, davidujcic05, DENIRO, doloress, Dusan Medojevic, exluppis, FOX, Gama, Huawei, ivan979, Jester, Kubovac, kunktator, Libertas2, Lieutenant, lovac12, MarKhan, Markoni29, Mercury2, MiG-29M2, mikrimaus, Mikulino, Nebojsha Trajkovich, novator, nuke92, Panter2, pejicigor, Regrut Boskica, Revolucion, RJ, rovac, SAA fan, sombrero, Sonyboy, Srna, SsssssNOVI, StepskiVuk2, tanakadzo, Taso2, theNedjeljko, Trpe Grozni, trutcina, USSVoyager, Vatreni Zmaj, Vlada1389, Voja1978, voja64, VP6919, Zerajic, zixmix, zodiac94, zoidbergs, zox-ni, zuxbg