Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопрос по использованию Enter вместо кнопки
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
1147
В компонент Edit вводятся какие-то данные. Есть кнопка "Сохранить", после нажатия которой введенные данные сохраняются.
Как сделать чтобы вместо нажатия кнопки, заставить эту функцию выполнять кнопку Enter на клавиатуре?
sheka
передать кнопке фокус.
1147
а если кнопки вообще нет?
Unconnected
Ну, если я правильно понял, что тебе нужно, то на обработчик OnKeyPress твоего Edit'а вешаешь код:

...
if key=#13 then button1.click; //<---обработчик нажатия на кнопку сохранить
...


И далее в обработчике нажатия кнопки делаешь activecontrol:=edit1;

Добавлено через 1 мин.
А если кнопки нет, то просто пишешь процедуру и уже её вызываешь вместо обработчика нажатия на кнопку.
1147
не совсем понял где нужно указать: activecontrol:=edit1;
Unconnected
В обработчике нажатия на кнопку, т.е. в button1.click; , или в процедуре, которая выполняет функцию этого обработчика, если кнопки нету.
1147
вот тут другая проблема теперь возникла: при нажатии Enter, данные сохраняются, тут все нормально. Но при этом издается звук похожий на щелчек. в папке windows->media он называется Windows XP-динь. Совершенно не хочется постоянно слушать этот "динь"!
Почему он издается?? и как устранить его проигрывание??
volvo
Цитата
Почему он издается?? и как устранить его проигрывание??
Чтоб ответить на второй вопрос, сначала надо ответить на первый. А чтоб ответить на первый - надо видеть код, и знать, на каких данных у тебя это все происходит... Показывай код, а то гадать на кофейной гуще как-то неинтересно...
1147
В событии onkeypress dbedita находится следующий код:
if key=#13 then bitbtn6.click;
Все, в dbedite больше ничего не изменено. Дальше, в bitbtn, на которую переключается фокус при нажатии Enter в событии onclick:
begin
activecontrol:=dbedit5;
activecontrol:=dbedit6;
activecontrol:=dbedit7;
activecontrol:=dbedit8;

if form5.xd.Modified then
form5.xd.Post;
dbedit5.SetFocus;
form5.xd.Insert;
Label1.Caption := IntToStr(xd.RecordCount);
end;

volvo
Цитата
В событии onkeypress dbedita находится следующий код:
Этот код, конечно, передает управление в bitbtn6.click, но само нажатие на Enter кто отменять будет? Из-за него у тебя и звуки появляются...
if key=#13 then begin
key := #0; bitbtn6.click;
end;
Вот так, например...
1147
smile.gif Звук исчез. Спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.