logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Borland C++ Builder – brak reakcji na klawiaturę po kliknięciu przycisku Start

janeczek23 05 Gru 2014 22:23 1122 12
REKLAMA
  • #1 14195505
    janeczek23
    Poziom 9  
    Posty: 14
    Witam,
    zakładam temat, bo przeszukałem internet i forum i nie znalazłem odpowiedzi.
    Otóż stworzyłem w c++ builder grę, w której poruszam w lewo i prawo klawiszami 'a' i 'd' stworzonym padem, gra uruchamiała się dotychczas przy starcie programu. Postanowiłem dodać przycisk start(tak aby wystartować w dowolnym momencie), ale gdy wywołuje zdarzenie ButtonClick, to już nie mogę używać klawiszy klawiatury, bo aktywny jest cały czas ten przycisk (tak mi się przynajmniej wydaje) i teraz nie wiem jak to naprawić?
    tzn sprawić aby działały klawisze po tym jak przycisk był wciśnięty.
  • REKLAMA
  • #3 14195884
    sivex
    Poziom 27  
    Posty: 815
    Pomógł: 113
    Ocena: 25
    Tak bez kodu to trudno pomóc.
    Zainteresuj się pojęciem "setfocus".

    pozdr.
  • REKLAMA
  • #4 14196101
    janeczek23
    Poziom 9  
    Posty: 14
    przyznam, że nie rozumiem, bo ja w builder c++ mogę wywołać funkcję na obiekcie np. button-> SetFocus(), ale już tak jak w linku nie mogę napisać SetFocus(hwnd);
    wiem że chodzi o tą funkcję focus, w momencie jak kliknę to focus jest na przycisku, ale jak się go pozbyć tzn żeby wrócił do klawiatury, co do kodu to nie ma narazie w przycisku żadnego kodu, bo wystarczy że nacisnę i już klawiatura jest nieaktywna
  • REKLAMA
  • #5 14196150
    sivex
    Poziom 27  
    Posty: 815
    Pomógł: 113
    Ocena: 25
    Musisz przenieść focus na formę
    jeżeli to na niej opisałeś obsługę przycisków.

    Komunikaty idą do przycisku, który ma focus.

    Możesz też przenieść komunikaty z przycisku do formy.

    pozdr.
  • #6 14196155
    janeczek23
    Poziom 9  
    Posty: 14
    Właśnie tak robiłem
    Kod: text
    Zaloguj się, aby zobaczyć kod

    ale to też nie działa
  • Pomocny post
    #7 14196182
    sivex
    Poziom 27  
    Posty: 815
    Pomógł: 113
    Ocena: 25
    Ale kiedy to robisz?
  • REKLAMA
  • #8 14196202
    janeczek23
    Poziom 9  
    Posty: 14
    po tym jak przycisk jest zwalniany czyli OnkeyUp
  • Pomocny post
    #9 14200174
    witoldwitoldowicz
    Poziom 28  
    Posty: 698
    Pomógł: 163
    Ocena: 60
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #10 14200644
    janeczek23
    Poziom 9  
    Posty: 14
    dzięki pomogło, można prosić jakiś link z opisem?
  • #11 14200673
    witoldwitoldowicz
    Poziom 28  
    Posty: 698
    Pomógł: 163
    Ocena: 60
    Jeżeli chodzi o SetFocusedControl to w helpie od Buildera jest.
  • #12 14200697
    janeczek23
    Poziom 9  
    Posty: 14
    czyli to oznacza że przekazuje focus na form1 czy na input czyli klawiature, myszkę? bo nie rozumiem tej dokumentacji

Podsumowanie tematu

✨ Użytkownik napotkał problem w grze stworzonej w C++ Builder, gdzie po dodaniu przycisku start, klawisze 'a' i 'd' przestały działać, ponieważ focus pozostał na przycisku. Użytkownik próbował użyć funkcji SetFocus, aby przenieść focus z przycisku na formularz, ale napotkał trudności. Ostatecznie rozwiązaniem okazało się użycie metody SetFocusedControl, co pozwoliło na przywrócenie aktywności klawiatury po zwolnieniu przycisku. Użytkownik prosił o dodatkowe informacje na temat dokumentacji dotyczącej tej funkcji.
Wygenerowane przez model językowy.
REKLAMA