No właśnie...
Jest coś takiego co pozwala po naciśnięciu Tabulatora poruszać się po formularzu według kolejnych liczb we właściwości TabOrder
Ma ktoś pomysł jak to zrobić po naciśnięciu ENTER będąc w jakimś aktualnym obiekcie?



void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
static int tabOrder = 1; // poczÄ…tek TabOrder
if(Key == 13) // przycisk ENTER
{
lab_1: // etykieta powrotu
TComponent *Temp;
for(int i = this->ComponentCount - 1; i >= 0; i--)
{
Temp = this->Components[i];
if(reinterpret_cast<TForm *>(Temp)->TabOrder == tabOrder)
{
reinterpret_cast<TForm *>(Temp)->SetFocus();
tabOrder++;
return;
}
}
tabOrder = 0;
goto lab_1;// powrót do początku kodu po wyszukaniu ostatniego komponentu
}
}
//---------------------------------------------------------------------------


Cyfrowy Baron napisał(a):Ustaw właściwość KeyPreview formularza na którym znajdują się komponenty na true, a następnie utwórz dla tegoż formularza zdarzenie OnKeyUp:
- Kod: Zaznacz cały
//...
if(reinterpret_cast<TForm *>(Temp)->TabOrder == tabOrder)
//...

//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
static int tabOrder = 1; // poczÄ…tek TabOrder
if(Key == 13)
{
lab_1:
TComponent *Temp;
for(int i = this->ComponentCount - 1; i >= 0; i--)
{
Temp = this->Components[i];
try{
if(reinterpret_cast<TForm *>(Temp)->TabOrder == tabOrder)
{
reinterpret_cast<TForm *>(Temp)->SetFocus();
tabOrder++;
return;
}
}catch(...){;}
}
tabOrder = 0;
goto lab_1;
}
}
//---------------------------------------------------------------------------

Cyfrowy Baron napisał(a):Co za problem! Rozwiązanie jest banalnie proste:


Powrót do Ogólne problemy z programowaniem
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 5 gości