![]() |
Такой вопрос, почему при использованию OnKeyPress событие наступает после второго нажатия клавиши.
|
Глупый пример
Код:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); |
Чуть конкретнее.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin If Key=#13 then begin if not Table2.Locate('Nazva',Edit1.Text,[]) then Table2.Edit; Table2.Insert; Table2.Fields[1].AsString:=Edit1.Text; Edit1.Text:=''; end else Edit1.Text:=''; |
В конце Key:=#0 напиши
Добавлено: Да, работу не гарантирую, потому как не ясно, что тебе надо. но разницу почувствуешь однозначно. |
Извини, привел не весь код.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin If Key=#13 then begin if not Table2.Locate('Nazva',Edit1.Text,[]) then if MessageDlg('Òàêî¿ íàçâè íåìàº. Äîäàòè?', mtConfirmation, [mbYes,mbNo], 0) = mrYes then begin Table2.Edit; Table2.Insert; Table2.Fields[1].AsString:=Edit1.Text; Edit1.Text:=''; DBEdit1.Enabled:=True; end else Edit1.Text:=''; SelectNext(Sender as TWinControl,True,True); Key:=#0; end else Table2.Locate('Nazva',Edit1.Text,[loCaseInsensitive, loPartialKey]); В том примере, что ты привел, согласен, все работает нормально. А здесь поиск в базе данных только после второго вводимого символа. |
В F1 сказано:
Цитата:
|
khvalera
Ваще я бы использовал OnKeyDown or OnKeyUp |
Spiderman
О чем и написано в F1 :) |
Время: 10:26. |
Время: 10:26.
© OSzone.net 2001-