przelączanie pomiedzy komponentami

0

witam.

mam nastepujacy problem.

powiedzmy ze mam 9 editow ulozonych w taki oto sposob
1 2 3
4 5 6
7 8 9
i naturalnie rzecz biorac mozna sie przemieszczac pomiedzy nimi klawiszem TAB.

a jak zrobic zeby mozna bylo sie przemieszczac pomiedzy nimi strzalkami na klawiaturze?

//przeł<font color="red">ą</span>czanie - M

0

do zdarzenia OnKeyDown w kazdym TEdit podpinasz taka procedurke:

              // aktywny - globalna zmienna typu byte
begin
 aktywny := form1.ActiveControl.ComponentIndex;
 if (key = 37) and (aktywny > 0) then
      TEdit(FindComponent('Edit' + IntTOStr(aktywny))).SetFocus;
 if (key = 38) and (aktywny > 2) then
     TEdit(FindComponent('Edit' + IntTOStr(aktywny - 2))).SetFocus;
 if (key = 39) and (aktywny < 8) then
     TEdit(FindComponent('Edit' + IntTOStr(aktywny + 2))).SetFocus;
 if (key = 40) and (aktywny < 6)then
     TEdit(FindComponent('Edit' + IntTOStr(aktywny + 4))).SetFocus;
end;
0

dzieki bardzo i za rozwiazanie i za blyskawiczna odpowiedz. oby wiecej takich uzytkownikow na forum.

pozdrawiam.

0

ok dopiero to sprawdzilem.

<ort>patrzales </ort><ort>w ogóle </ort>czy to dziala?

bo u mnie wyskakuje przy nacisnieciu strzalki "access vol...cos tam" i blad programu.

delphi wskazuje ta linie
TEdit(FindComponent('Edit' + IntToStr(act+1))).SetFocus;
...zmienilem nazwe zmiennej.

0

aha i sprawdzilem co przedstawia ta zmienna aktywny.

i pomimo ze mam Edit1 zaznaczony to zmienna "aktywny" ma wartosc 10...a nie 1...mysle ze w tym jest problem i dlatego wyskakuje blad bo nie ma takich editow.

ktos wie jak to naprawic i pobrac aktualny numerek edita? :)

0

Omg czlowieku pomysl troche zanim zadasz pytanie :/ jesli masz na formie 10 Editow, podpisane kolejno: Edit1, Edit2 ... i jesli Delphi inofrmuje cie, iz Edit1 ma przypisany numer 10 no to odejmij od zmiennej "aktywny" 9 :/

0

spoko ziomus nie szalej tylko ze ja mam 90 DBEditow i jezeli
edit1 ma numer10
to edit2 ma nr 20
a edit11 ma numer 11

<ort>popiepszone </ort>nie chce mi sie zmieniac nazw bo mam juz popodczepiane procedure roznorakie.

ale mozna to zrobic przy pomocy TAGow.

ale ja to zrobilem w jeszcze inny sposob....malo elegancki.. mianowicie napisalem procedurke ktora wykorzystoje twoj troche zmodyfikowany kod.

i przy editach w zdarzeniu onKeyDown odwolywalem sie do tej procedury wysylajac jej nr edita :P

0

No widzisz jak chcesz to potrafisz :), pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1