C++ Builder 6 tło przycisków i liczby z klawiatury


(Tezarrus) #1

witam! zrobiłem prosty kalkulatorek w Builderze, chciałbym go trochę upiększyć poprzez wstawienie zamiast zwykłego szarego przyciusku jakiś ładny kolorowy, bądź jakąś ładną teksturę. chciałbym również abym mógł wpisywać lczby z klawiatury a nie poprzez kliknięcie, wiem że trzeba dodać coś w zakładce Events, tylko nei wiem za bardzo co? dzięki za pomoc!


([alex]) #2

TForm::onkeypress()


(Tezarrus) #3

coś próbuję, ale mam błąd przy kompilacji:

void __fastcall TForm1::Button2KeyPress(TObject *Sender, char &Key)

__fastcall TForm1::Button2KeyPress(TObject *Sender, char &Key) is not a member of 'TForm1' Tutaj jest już błąd. a druga sprawa to gdy w okienku Events chcę dopisać w rubrykę

OnKeyPress

Button2 to wyskakuje:

A field of method name Button2 alredy exist.

([alex]) #4

Klikasz na (formę nie na kontrolkę na niej) lub na dowolną kontrolkę a potem naciskasz dopóki w inspektorze nie zobaczysz Fom1:TForm1 , klikasz na inspektor, klikasz na zakładkę "Events" znajdujesz OnKeyPress, klikasz dwa razy w puste pole w wierszu z OnKeyPress.


(Tezarrus) #5

18051929.th.jpg

wstawiłem w linijkę OnPressKey takie coś: np dla dwójki:

if (Key == '2')

BitBtn2Click(Sender);

gdzie BitBtn2Click to klawisz z dwójką. i działa mi tylko wtedy jak krateczka ( prostokąt w kropki ) znajduje się na klawiszu 2 tak jak na rysunku. :confused:


([alex]) #6

Bo dałeś to w OnPressKey, dla BitBtn2 a trzeba dać dla Form1.

tam ma to wyglądać:

if (Key == '0') BitBtn0.Click();

else if (Key == '1') BitBtn1.Click();

else if (Key == '2') BitBtn2.Click();

...

Poza tym radze zastanowić się nad wysłaniem do BitBtn2 komunikatu WM_LEFTMOUSEDOWN a po około 300-1000 milisekund WM_LEFTMOUSEUP

aby po naciśnięciu klawisza 2 przycisk 2 na ekranie ładnie się wciskał na chwilę


(Tezarrus) #7

jak dodaję do Form1 -> Events -> OnKeyPress:

if (Key == '0') BitBtn10Click(Sender);

else if (Key == '1') BitBtn1Click(Sender);

else if (Key == '2') BitBtn2Click(Sender);

else if (Key == '3') BitBtn3Click(Sender);

else if (Key == '4') BitBtn4Click(Sender);

else if (Key == '5') BitBtn5Click(Sender);

else if (Key == '6') BitBtn8Click(Sender);

else if (Key == '7') BitBtn7Click(Sender);

else if (Key == '8') BitBtn6Click(Sender);

else if (Key == '9') BitBtn9Click(Sender);

po skompilowaniu nic się nie dzieje.

tutaj chodzi chyba o to żeby wyłączyć ten prostokącik w kropki ( to że po kalkulatorze można się poruszać strzałkami )


([alex]) #8

Opcje dla formy pewnie zapomniałeś włączyć KeyPreview = true