Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизПереход по Enter Найти похожие ветки
← →
Explorer (2003-01-23 08:41) [0]Мастера!
Подскажите, как лучше сделать, Сабж, для элементов (Edit"s, ListBox) на форме?
Каждый раз обрабатывать нажатие Enter для всех элементов?
← →
dolmat (2003-01-23 09:37) [1]В кладовке по моему что-то было
или если нет то www.qrsoft.com (если мне память не изменяет) там необходимо зарегистрироваться на их форум, а они на e-mail сбросят письмо с паролями free libraru и ссылочками.
← →
dolmat (2003-01-23 09:50) [2]извиняюсь www.devexpress.com
← →
Explorer (2003-01-23 12:42) [3]>dolmat ©
А как комнонента называется?
← →
Explorer (2003-01-24 07:34) [4]А больше, никто, ничего посоветовать не может?
← →
gek (2003-01-24 07:51) [5]
procedure TForm.EDITKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_UP: SelectNext(Sender as TWinControl, false, true);
VK_RETURN,VK_DOWN: SelectNext(Sender as TWinControl, true, true);
end;
end;
← →
Explorer (2003-01-28 08:42) [6]>gek ©
Но это все же не по Enter переход.
Или я, что-то не понял?
← →
gek (2003-01-28 08:49) [7]А как ты думаешь клавиша Enter обозначается?
Я понял вопрос так, что нужен переход на следующий элемент формы
← →
Separator (2003-01-28 08:53) [8]Это как раз по Enter + Клавиши Up и Down
← →
Explorer (2003-01-28 08:54) [9]Вопрос понял правильно..
Но дело в том, что по нажитию клавиши Enter на компоненте... переход не осуществляется! :(
Если нажимаю, клавиши ВВЕРХ или ВНИЗ то переход работает.
← →
gek (2003-01-28 09:02) [10]var
MF: TCustomForm;
begin
case Key of
VK_RETURN: begin
MF := TForm(GetParentForm( Self ));
if not(MF = nil )then SendMessage(MF.Handle, WM_NEXTDLGCTL, 0, 0);
end;
end; { case }
Ну если и так не работает...
← →
Explorer (2003-01-28 09:07) [11]Не хотит! :((
Пробовал пошаго пройти... но даже не срабатывает на Enter.
В чем еще может быть проблема?
Может дело в операционке (Win 2000 Advanced Server)? Хотя странно было бы...
← →
makdi (2003-01-28 09:20) [12]у меня работает такой код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_Return then begin
form1.SelectNext(form1.ActiveControl as TWinControl, true, true);
Key:=VK_OEM_CLEAR;
end;
end;
← →
Explorer (2003-01-28 09:34) [13]Не могу понять в чем дело! :(
>makdi
тоже не работает
меняю VK_Return на любой другой (VK_Down, VK_UP и даже на VK_SHIFT) все работает.
← →
jtiger (2003-01-28 09:48) [14]TO Gek
а зачем:
MF := TForm(GetParentForm( Self ));
ведь:
SendMessage( Self.Handle, WM_NEXTDLGCTL, 0, 0);
прекрасно работает.
← →
Explorer (2003-01-28 10:12) [15]Самое интересное, что программа ВООБЩЕ ни как не реагирует на нажатие Enter! Как будто она сделана на клаве для красоты...
На любую другую, она хоть заходит в процедуры и сравнивает... но не на Enter! :(
Хотя в других приложениях работает нормально.
← →
makdi (2003-01-28 10:13) [16]А ты выставил у формы KeyPreview? Если нет, то понятно что оно работать не будет.
← →
soware (2003-01-28 10:14) [17]1) А у тебя для формы установлен KeyPreview ???
2) Нет ли у тебя кнопки с Default=True ???
← →
Explorer (2003-01-28 10:28) [18]>soware
да!!!!
Оказалось все дело в кнопке!
Спасибки!
← →
Leonid_A (2003-01-28 10:45) [19]Для CBuilder:
1)Выставляешь Form->KeyPreview = true;
2)Пишешь обработчик события FormKeyUp формы. Например:
void __fastcall TBankAccountEdtFrm::FormKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Shift.Contains(ssCtrl))
{
switch (Key)
{
case VK_RETURN:
Key = NULL;
BitBtnOK->Click();
break;
}
}
else
{
if (Key == VK_RETURN &&
BitBtnOK->Focused() == false &&
BitBtnCancel->Focused() == false &&
BitBtn3->Focused() == false &&
RxDBLookupCombo1->IsDropDown == false &&
RxDBLookupCombo2->IsDropDown == false &&
RxDBLookupCombo3->IsDropDown == false
)
{
Key = NULL;
Perform(WM_NEXTDLGCTL,0,0);
}
}
}
← →
Orlan Master (2003-01-28 13:13) [20]Нижеприведенный пример описан у Марко Кэнту в "Delphi 4"
Вешается обработчик на контрол на свойство OnKeyPress.
Далее:
procedure TfrmCheck.OnKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
Perform(CM_DialogKey,VK_Tab,0);
end;
end;
← →
dolmat (2003-01-29 12:09) [21]извиняюсь за задержку.
Тат целая библиотека под названием EForumLib у меня только под D5
Страницы: 1 вся ветка
Текущий архив: 2003.02.06;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.011 c