[BCB]ShiftState

0

Jak w programie pisanym w c++builderze reagowć na wcisniecie klawisza np Shift podczas gdy program jest na wierzchu??
w helpi znalazlem cos o TShifState ale nie wiem jak tym sie posługiwać:

typedef Set<Classes__1, ssShift, ssDouble>  TShiftState;
0

Jak w programie pisanym w c++builderze reagowć na wcisniecie klawisza np Shift podczas gdy program jest na wierzchu??
w helpi znalazlem cos o TShifState ale nie wiem jak tym sie posługiwać:
typedef Set<Classes__1, ssShift, ssDouble> TShiftState;

TShiftState jest kontenerem i zawiera wszystkie stany klawiatury i myszy jakie sa nacisniete podczas wykonywania np MouseMove albo MouseDown

aby sprawdzic co jest w ShiftState sluzy do tego funkcji Contains(...) , jako parametr podaje sie jeden z elementow typu Classes__1 ktory jest zwyklym enumem , a wywoluje sie to tak:
if(ShiftState.Contains(ssShift)) {
.....
}

aby stworzyc wlasny kontener typu Set wystarczy napisac jakis typ wyliczeniowy np:
enum tag_Cos {t_1,t_2,t_3,t_4,t_5};

a potem:

typedef Set<tag_Cos,t_1,t_5> TCos;
i juz kontener jest gotowy... jako parametry konstruktora Set podaje sie typ wyliczeniowy, minimum wyliczenia (pierwszy element) i maksimum wyliczenia (ostatni element)
aby dodac cos do takiego kontenera:
(na poczatku gdzies tam mamy deklaracje np TCos cos;)

cos<<t_1;

aby usunąc element z kontenera

cos>>t_1; (element w kontenerze musi byc)

w helpie jest opisany ten typ wiec wiecej pisac nie bede... to sa podstawy... a i jeszcze enum nie moze miec wiecej jak 255 elementow... ale chyba sie jeszcze nikomu nie zdazylo aby napisac tak duzego enuma :-P

pozdrawiam

0

WIELKIE dzieki.
Z jakiej mądrej ksiażki dowiedziałeś się o tym??

0

z praktyki i z helpa Buildera... trzeba tylko poszperac... :-P

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