| 
| 
 | Вопрос # 6 479/ вопрос решён / | 
 |  Здравствуйте,  уважаемые  эксперты!На  форме  есть  Edit2,  в  исходном  состоянии  невидимый.  По  нажатию  кнопки  он  становится  видимым,  вожу  текст,  и  по  Enter  хочу  провести  обработку.  Ничего  не  происходит,  а  выдеётся  короткий  "Бум!" .  Раньше  было : по первому  нажатию  кнопки  активируется  Edit2,  при  последующих  выполнялась  обработка, перенесена  без  изменения в обработчик  Enter.  Работало  нормально.
 Вот  что  значит  перерыв  в  дельфинировании.  Умом  пораскинул  бы,  да  нечем ...
 Приложение:Переключить в обычный режим {{code}}procedure TForm1.Edit2Enter(Sender: TObject);var srvstr,str1 : string ; i,ni,ll,ix,iy : integer ;   M9 :  array [0..8] of integer ;begin   srvstr := Edit2.Text ; ll := Length (srvstr);   If ll < 9 then srvstr := srvstr + '          ' ;   for i := 1 to 9 do     begin       if (srvstr[i]<'1') or (srvstr[i]>'9') then srvstr[i] := ' ' ;       str1 := Copy(srvstr,i,1) ;       ll := Ord(srvstr[i]) and $F ; ni := (i-1)*9 + InpLine ;       ix := Coord[ni].X ; iy := Coord[ni].Y ;       Image1.Canvas.TextOut(ix-7,iy-9,str1); Mas81[ni] := ll     end ;   Edit2.Text := '' ; N19 := InpLine + 1 ; NToChar() ; Edit2.SetFocus ;   Inc (InpLine) ; if InpLine>8 then      begin mode := 0 ; N19 := 1 ; NToChar() end ;end ; {{/code}} 
|  |   Вопрос задал: Толяныч (статус: 4-ый класс)Вопрос отправлен: 23 сентября 2013, 14:05
 Состояние вопроса: решён, ответов: 1.
 |  Ответ #1. Отвечает эксперт: DNK Здравствуйте, Толяныч!Нажатия кнопок клавиатуры обрабатываются в событии OnKeyPress.
 
|  | Ответ отправил: DNK (статус: Студент)Время отправки: 23 сентября 2013, 16:13
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 7; последнее сообщение — 24 сентября 2013, 12:12; участников в обсуждении: 3. 
|   | Толяныч (статус: 4-ый класс), 23 сентября 2013, 14:40 [#1]:Ещё : при  нажатии  кнопки АКТИВИРОВАТЬ EDIT2  сразу  влетает  в  обработчик  Edit2.Enter.  Так  надо? И как с этим  бороться? |  
|   | Вадим К (статус: Академик), 23 сентября 2013, 15:14 [#2]:читаем документацию по onEnter 
 
 Цитата: Use the OnEnter event handler to cause any special processing to occur when a control becomes active.  
 То есть, он сработает, когда edit станет активным. Видимо Вы спутали имя кнопки Enter  с событием.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 23 сентября 2013, 16:08 [#3]: Цитата (Толяныч):  и по Enter хочу провести обработку. Событие OnKeyPress использовать надо тебе, юный падаван...
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Толяныч (статус: 4-ый класс), 23 сентября 2013, 19:10 [#4]:Да,  век  живи ... Буду  учиться  дальше, что  мне  ещё  остаётся, старому  павиану  Спасибо  всем!
 |  23 сентября 2013, 19:19: Статус вопроса изменён на решённый (изменил автор вопроса — Толяныч) 23 сентября 2013, 20:33: Вопрос перемещён из тематического раздела Delphi » Взаимодействие с Windows в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А. 
|   | Толяныч (статус: 4-ый класс), 23 сентября 2013, 21:11 [#5]:Странно...   Работает  нормально,  но  звук  "Бум!"  остался,  как  будто  оно  чем-то  недовольно. 
 begin
 if Key=#13 then
 begin
 srvstr := Edit2.Text ; ll := Length (srvstr);
 ......    ( дальше  как  в первом  варианте )
 Т.е.  все  символы не #13 обрабатываются  по  умолчанию,  стандартным  образом, т.е.  заносятся  в Edit2.Text ?  Чего  тогда  оно  возмущается ?
 Такое  у  меня  бывает,  когда  на  экране  только  рабочий  стол,  никакая прога не запущена,  а  кот  топчется  по  клаве. Может, очищать  буфер  клавиатуры ?  А  как ?
 |  
|   | min@y™ (статус: Доктор наук), 24 сентября 2013, 08:18 [#6]: Цитата (Толяныч): Работает нормально, но звук "Бум!" остался, как будто оно чем-то недовольно. Попробуй так:
 
 if Key=#13 then
begin
  Key:= #0;
  srvstr := Edit2.Text ; ll := Length (srvstr);
  ...... ( дальше как в первом варианте ) Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Толяныч (статус: 4-ый класс), 24 сентября 2013, 12:12 [#7]:min@y™,   ещё  раз  гран  мерси !  Помогло,  замолчало. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |