Borland C++ Builder, obsługa klawiszy

0

Cześć, uczę się programować w BCB i napotkałem problem, mianowicie chciałbym w moich programach użyć klawiatury, mam takie coś ale mi nie działa:

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if (Key == VK_CONTROL)
{
Edit1->Text=liczba;
}

if (Key == VK_SHIFT)
{
Edit1->Text=liczba2;
}
}
 

Co tu jest nie tak i jak zrobić żeby działało?

0

Nie wiem jak to dokładnie jest w BCB, ale w Delphi stan klawiszy ctrl oraz shift sprawdzało się przez Shfit, nie Key. Nie mam ani delphi ani bcb aby to sprawdzić. Spróbuj ustawić pułapkę w tej funkcji i podejrzyj zmienną Shift.

0

Spróbowałem, taki efekt:

[C++ Error] Unit1.cpp(24): E2094 'operator==' not implemented in type 'TShiftState' for arguments of type 'int'

0

http://www.delphigroups.info/3/9/162008.html
czyli TShiftState powinno mieć metodę contains. Np by sprawdzić czy jest wciśnięty Shift napiszesz:
if(Shift.contains(ssShift)){...}

0

Ehh...

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Shift.contains(ssShift))
{
ShowMessage("Brawo Jasiu wcisnoles shifta");

}
}

i otrzymuje komunikat:

[C++ Error] Unit1.cpp(21): E2316 'contains' is not a member of 'TShiftState'

1 użytkowników online, w tym zalogowanych: 0, gości: 1