Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Табуляция через Enter [D5, D6, D7]


4x4 ©   (2002-12-02 11:22:00) 

У меня на форме много компонентов и надо осуществить навигацию через Enter, т.е. сымитировать нажатие TAB клавиши, но без SetFocus метода!Следующий код onKeyPress- не помогает!
if Key = vk_TAB then
Key:=vk_Tab;


sniknik   (2002-12-02 15:08:00) [1]

в фаге есть такая хрень
Ставите у формы KeyPreview = true и создаете событие KeyPress следующего вида:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) then begin
Key:=#0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;

Кот Бегемот © (02.12.02 14:55)
это наживка делай засаду! :-))


Кот Бегемот   (2002-12-02 14:55:00) [2]

Еще один ламер - ловите пока не убежал - знаете какое у них мясо вкусное :)))


4x4   (2002-12-02 14:19:00) [3]

Всё работает прекрасно!!! :)


Song   (2002-12-02 13:16:00) [4]

Ага, а потом попробуй кнопочки понажимать ярлычки покликать...


4x4   (2002-12-02 13:07:00) [5]

Попробовал один раз keybd_event - работает!!! :)


Song   (2002-12-02 13:04:00) [6]

Да, вот так захотелось мне просто.
Что пришло первое в голову, то и написал. Какая разница, если эффект достигнут?


Игорь Шевченко   (2002-12-02 12:56:00) [7]

Song © (02.12.02 12:54)

А зачем так ? Через keybd_event?


Song   (2002-12-02 12:54:00) [8]

2to Song: а зачем 2 раза keybd_event вызывать?
Ну, а ты попробуй один раз :)


Andryk   (2002-12-02 11:56:00) [9]

Можно еще переписать обработчик сообщения CM_DialogKey у формы, и там все разрулить, а потом все формы наследовать от нее


FreeLancer   (2002-12-02 11:46:00) [10]

Упал - > Отжался


4x4   (2002-12-02 11:45:00) [11]

to Song: а зачем 2 раза keybd_event вызывать?


4x4   (2002-12-02 11:38:00) [12]

vk_Return- извиняюсь ещё раз! :)


Song   (2002-12-02 11:36:00) [13]

Извиняйся ещё раз: VK_ENTER нет такого.


4x4   (2002-12-02 11:33:00) [14]

if Key = vk_ENTER then
Key:=vk_Tab;
Я извиняюсь! :)


Song   (2002-12-02 11:27:00) [15]

2FreeLancer © (02.12.02 11:25)
Он наверно имел ввиду

if Key = vk_return then
Key:=vk_Tab;


Song   (2002-12-02 11:26:00) [16]

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
IF Key=VK_RETURN then
Begin
keybd_event(VK_TAB,0,0,0);
keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
Key:=0;
End;
end;


FreeLancer   (2002-12-02 11:25:00) [17]


if Key = vk_TAB then
Key:=vk_Tab;

То есть если Key = TAB, то Key := TAB? Что за фигня?


Наверх

Титульная страница Поиск, карта сайта Написать письмо