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!
TForm::onkeypress()
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.
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.
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.
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ę
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 )
Opcje dla formy pewnie zapomniałeś włączyć KeyPreview = true