Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.06;
Скачать: CL | DM;

Вниз

проблема с переходом между DBEdit....   Найти похожие ветки 

 
BillyJeans ©   (2002-04-19 14:38) [0]

подскажите, как сделать, чтобы по клавише Enter фокус передавался в следующий DBEdit.
DBEdit"ы расположены на DBCtrlGrid...


 
SB.John ©   (2002-04-19 14:58) [1]

Надо эти Edit"ы раположить по возрастанию TabOrder"ов . Точнее TabOrder"ы им поменять так, чтобы они шли по возрастанию. Ну и пишешь общий для всех Edit"ов обработчик OnKeyDown:

if Key = VK_RETURN then
FindNextControl(ActiveControl,True,True,True).SetFocus();


 
Дмитрий Д. ©   (2002-04-19 14:59) [2]

в свойство онкейпрес:

if Key = #13 then
begin
SelectNext(Sender as TWinControl, True, True);
Key := #0;
end;


 
BillyJeans ©   (2002-04-22 17:04) [3]

с TabOrder"ами все впорядке! Перепробовал оба примера и ничего!
После нажатия на Enter фокус передается DBCtrlGrid и все тут!!!

Подскажите еще что-нибудь...


 
Игорь Шевченко ©   (2002-04-22 17:17) [4]

День добрый,

А убрать у DBGrid из Options dgTabs не пробовали ?

С уважением,


 
Игорь Шевченко ©   (2002-04-22 17:22) [5]

Вдогонку:

Похоже, я притормозил насчет dgTabs :-(

Обработка события KeyDown на DBGrid не помогает ? Там ENTER несколько иначе отрабатывается...

С уважением,


 
BillyJeans ©   (2002-04-23 08:44) [6]

... еще идеи будут?


 
gek ©   (2002-04-23 09:01) [7]

Ничего там особенно не обрабатывается

procedure TForm_people.RxDBGrid_countryKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key = VK_RETURN then SelectNext(Sender as TWinControl,true,true);
end;

И все работает



 
BillyJeans ©   (2002-04-23 10:01) [8]

... ну и чего? фокус стоит как вкопаный на DBEdit1!!!
Повторяю, у меня DBEdit"ы расположены на DBCtrlGrid а не на DBGrid

Помогите pls...


 
Игорь Шевченко ©   (2002-04-23 10:07) [9]

День добрый,

Вы поглядите
procedure TDBCtrlGrid.CMChildKey(var Message: TCMChildKey);
Там обрабатывается VK_TAB

По образу и подобию...

С уважением,


 
Reals ©   (2002-04-23 10:25) [10]

Здравствуйте!

Вот еще одна идея, у меня работает:
В событие onKeyPress для всех Едитов написать следующее

if Key=#13 then Perform(WM_NEXTDLGCTL,0,0);

Но при этом нужно чтобы на формах стояли Properties - KeyPreview=False.

С Уважением!


 
BillyJeans ©   (2002-04-23 10:30) [11]

а что за процедура такая CMChildKey? Что-то я не нашел такую...


 
BillyJeans ©   (2002-04-23 10:38) [12]

Процедура Perform передает фокус от DBEdit1 к DBCtrlGrid и обратно :(


 
gek ©   (2002-04-23 10:46) [13]

if key = VK_RETURN then
key:=VK_TAB


 
ValVas   (2002-04-23 10:48) [14]

Можно выставить у формы KeyPreview=True и в ее обработчике искать все компоненты типа TDBEdit c TabOrder > текущего.
А вообще всех перечисленных способов обычно вполне достаточно, но загвоздка похоже в том, что используются DB контролы. Я могу предположить, что у каких-то полей набора данных уже реализованы обработчики, например, OnExit...
Проверь все.


 
BillyJeans ©   (2002-04-23 10:52) [15]

Вся проблема в том, что OnKeyPress у DBEdit ни когда не вернет Key = #13 или VK_RETURN! Нажатие на Enter у него обрабатывается как-то по своему!


 
gek ©   (2002-04-23 10:59) [16]

Не надо ерунды говорить
приведенный мной код нормально работает только сей проверил

procedure TForm1.DBCtrlGrid_exKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_RETURN then key:=VK_TAB
end;

Только еще свяжи DBEdit1_exKeyDown с этим событием
Ну и конечно KeyPreview=true


 
BillyJeans ©   (2002-04-23 12:15) [17]

Благодарю за внимание!!

Родилось у меня следующее:

procedure TForm1.DBCtrlGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (sender as tControl).Name <> "DBCtrlGrid1" then
Case key of
VK_RETURN : key := VK_TAB;
VK_UP : DBCtrlGrid1.DoKey(gkUp);
VK_DOWN : DBCtrlGrid1.DoKey(gkDown);
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2002.05.06;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
1-17540
ymin
2002-04-23 13:51
2002.05.06
edit1


3-17488
Dmitry_
2002-04-12 13:28
2002.05.06
ADO + Oracle


1-17563
lipskiy
2002-04-21 23:47
2002.05.06
Как в IDE запретить при пошаговом прогоне вход в отдельные юниты?


7-17720
alla
2002-02-07 16:36
2002.05.06
Запись в сом порт


1-17550
sergey32
2002-04-23 15:58
2002.05.06
При редактировании года в DateTimePicker приложение виснет