Странное поведение Ентера либо я чего то не знаю.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Странное поведение Ентера либо я чего то не знаю.

Сообщение GAMER » 27.10.2010 22:21:56

В программе есть такой кусочек:
Код: Выделить всё
procedure TFrmPass.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=VK_RETURN then
begin
EnterLogin;
Close;
end;
if Key=VK_ESCAPE then
begin
Button3Click(Button3);
exit;
end;
end;   

В процедуре EnterLogin есть вызов MySQL_Real_Connect.
Так вот, при наличии этого вызова (MySQL_Real_Connect) код в EnterLogin исполняется дважды.
Если этот вызов убрать, код выполняется раз, как и должно быть.
Прикол в том, что если VK_RETURN заменить на VK_END, то тоже все нормально, то есть код в EnterLogin выполняется один раз.
Чем Ентер так отличается от других клавиш?
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Странное поведение Ентера либо я чего то не знаю.

Сообщение Mr.Smart » 27.10.2010 22:27:28

Ни чем не отличается.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Странное поведение Ентера либо я чего то не знаю.

Сообщение dunin » 27.10.2010 22:42:21

Было что-то похожее. Что точно уже не помню. На кнопке ModalResult был назначен - событие дважды отрабатывало.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Странное поведение Ентера либо я чего то не знаю.

Сообщение GAMER » 27.10.2010 22:43:20

Нашел я причину. У меня на кнопку было присвоено эту же процедуру, и она была дефолтной. Вот и срабатывало дважды. Вот только не понимаю, какую зависимость давал МайСКЛ? :roll: Ну да ладно, уже не важно.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Странное поведение Ентера либо я чего то не знаю.

Сообщение dunin » 27.10.2010 22:45:49

GAMER писал(а):...на кнопку было присвоено эту же процедуру, и она была дефолтной. Вот и срабатывало дважды....

Ну, можно сказать, угадал. 8)
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Странное поведение Ентера либо я чего то не знаю.

Сообщение GAMER » 27.10.2010 22:55:23

Вы угадали, а я полдня угробил на поиски причины :)
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Странное поведение Ентера либо я чего то не знаю.

Сообщение SAK » 29.10.2010 16:21:15

В большинстве случаев после обработки желательно обнулять Key.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 40

Рейтинг@Mail.ru