Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];

Вниз

проблема с переходом между 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
14-17691
herosofnn
2002-03-16 10:33
2002.05.06
Microsoft exchange


6-17649
VID
2002-02-17 02:10
2002.05.06
Самый трудный вопрос :))


1-17647
SONY
2002-04-23 14:53
2002.05.06
как из кол. секунд (integer) получить время (TTime)


1-17559
Tpv
2002-04-22 09:26
2002.05.06
Открыть Word.


1-17515
openfire
2002-04-19 12:38
2002.05.06
Вопрос по ListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский