CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Symulacja klawisza TAB Enterem

Symulacja klawisza TAB Enterem

dział ogólny

Symulacja klawisza TAB Enterem

Nowy postprzez rafalskraba » czwartek, 22 grudnia 2011, 14:10

Witam,

mam na formatce umieszczony komponent GroupBox w którym znajduje się kolka pól edycyjnych Edit.
Jak zrobić w zdarzeniu dla formatki OnKeyPress symulację klawisza TAB enterem.

Poniższy kod nie chce działać:

Kod: Zaznacz cały

if(Key == VK_RETURN)
{
   Key=0;
   SelectNext(Form1->ActiveControl, true,true);
}


Proszę o wskazówkę

Pozdrawiam

Rafał
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows XPFirefox

Re: Symulacja klawisza TAB Enterem

Nowy postprzez Corvis » czwartek, 22 grudnia 2011, 14:44

KOD cpp:     UKRYJ  
//--------------------------------------------------------------------
void SendKey(int keycode){
   keybd_event(keycode,0,0,0);
   keybd_event(keycode,0,KEYEVENTF_KEYUP,0);
}
//--------------------------------------------------------------------
 
Masz tutaj funkcję która to zrobi. Wywołaj ją tak:

Kod: Zaznacz cały
SendKey(VK_TAB);


Tab to chyba 0x09
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Symulacja klawisza TAB Enterem

Nowy postprzez rafalskraba » czwartek, 22 grudnia 2011, 15:00

Witaj,

niestety podany przez ciebie kod nie działa.

Funkcję
Kod: Zaznacz cały
SendKey(VK_TAB);


umieściłem w zdarzeniu OnKeyPress formatki
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows XPFirefox

Re: Symulacja klawisza TAB Enterem

Nowy postprzez Corvis » czwartek, 22 grudnia 2011, 15:09

No to nie bardzo rozumiem co chcesz osiągnąć.

Chcesz jak ktoś wciśnie Enter żebyś od razu potem zasymulował naciśnięcie klawisza TAB ??

KOD cpp:     UKRYJ  
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
    : TForm(Owner)
{
    this->KeyPreview = true;
}
//---------------------------------------------------------------------------
void SendKey(int keycode){
   keybd_event(keycode,0,0,0);
   keybd_event(keycode,0,KEYEVENTF_KEYUP,0);
}
//---------------------------------------------------------------------------
void __fastcall TForm3::FormKeyPress(TObject *Sender, wchar_t &Key) {
    if(Key == VK_RETURN) {
        SendKey(VK_TAB);    
    }
}
//---------------------------------------------------------------------------
 


U mnie działa na formie mam 2 edity i jak nacisnę Enter to przechodzi do edita numer 2. Zobacz czy masz na formie ustawione KeyPreview na true
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Symulacja klawisza TAB Enterem

Nowy postprzez rafalskraba » czwartek, 22 grudnia 2011, 15:33

Ok jezeli będą same Edity na gołej formatce to bedzie działać.
Funkcja którą podałem w pierwszym poście tak właśnie działa.
Wstaw pola edycyjne do komponentu GroupBox z zobacz czy wtedy będzie działać.
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows XPFirefox

Re: Symulacja klawisza TAB Enterem

Nowy postprzez Corvis » czwartek, 22 grudnia 2011, 15:45

Mój sposób działa - GroupBox na nim 2 edity działa.
Inna opcja GroupBox na nim 2 edity, po za nim 2 inne. Przeskakuje przez każdy edit.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Symulacja klawisza TAB Enterem

Nowy postprzez Cyfrowy Baron » czwartek, 22 grudnia 2011, 16:28

Może rafalskraba zapomniał o tym:

KOD cpp:     UKRYJ  
this->KeyPreview = true;


Można to też włączyć w Obiect Inspector -> Properties dla formularza, którego ma dotyczyć.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Symulacja klawisza TAB Enterem

Nowy postprzez Corvis » czwartek, 22 grudnia 2011, 17:44

Też tak myślę
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Symulacja klawisza TAB Enterem

Nowy postprzez rafalskraba » czwartek, 22 grudnia 2011, 22:34

Witam ponownie

faktycznie nie zaznaczyłem KeyPreview.

Tym oto sposobem obydwa rozwiazania są poprawne.

Wielkie dzieki
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości