nikll |
Отправлено: 02.07.2004, 13:44 |
|
Не зарегистрирован
|
Все привет, Помогите начинающему плиз...
На форме есть DBGrig, и ActionList. У ActionList есть Action1. Эту Action1 я вызываю по DBLClick на гриде. Я хочу, что бы это же действие выполнялось и при нажатии на Enter... Не могу понять как это можно сделать Само событие нажатия и определение нажатой клавиши сделать могу OnKeyPress или OnKeyDown, а заставить выполнить действие (метод, если я не ошибаюсь) не могу уже больше недели! Почему на одних событиях появляется выпадающий список действий, а на других нет?
И аналогичная проблема. Как сделать так чтобы после нажатия на Энтер фокус перемещался с одного объекта ввода данных на другой (не только табуляцией). Спасибо!
|
|
AVC |
Отправлено: 02.07.2004, 14:04 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
CODE |
void __fastcall TFMain::DBGrid1DblClick(TObject *Sender)
{
Action1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TFMain::DBGrid1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (((TDBGrid*)Sender)->OnDblClick)
((TDBGrid*)Sender)->OnDblClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TFMain::Action1Execute(TObject *Sender)
{
ShowMessage("I am here");
}
//---------------------------------------------------------------------------
|
Наличие элементов в выпадающем списке зависит от типа события TNotifyEvent и т.д.
С фокусом по Enter лучше использовать как в Windows'е — те по Tab, что бы не выбиваться из общего стиля. Заметил, что в моем приложении кроме меня этим ни кто не пользуется, а возни с правильной отработкой много. |
|
nikll |
Отправлено: 02.07.2004, 14:53 |
|
Не зарегистрирован
|
СПАСИБО! |
|
|