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

Вниз

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

Наверх





Память: 0.48 MB
Время: 0.012 c
1-15636
Anton
2003-01-29 13:23
2003.02.06
Чем отличаются Application.Terminate; и Application.Destroy;


7-15975
Erlan
2002-11-27 09:20
2003.02.06
Проблема с vxd


1-15572
kkostik
2003-01-28 16:55
2003.02.06
Сняти задичи


14-15852
Ihor Osov'yak
2003-01-17 21:08
2003.02.06
Структура NTFS


4-15990
maxim2
2002-12-23 21:12
2003.02.06
Смена цветов в Windows





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский