Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » OnKeyPress

Ответить
Настройки темы
OnKeyPress

Аватара для khvalera

Пользователь


Сообщения: 100
Благодарности: 0

Профиль | Отправить PM | Цитировать


Такой вопрос, почему при использованию OnKeyPress событие наступает после второго нажатия клавиши.

-------
Khvalera


Отправлено: 23:26, 06-07-2003

 

Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Глупый пример
Код: Выделить весь код
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  Form1.Caption:='666';
end;
работает корректно. Чуть конкретнее плиз.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 02:23, 07-07-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для khvalera

Пользователь


Сообщения: 100
Благодарности: 0

Профиль | Отправить PM | Цитировать


Чуть конкретнее.

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:='';

-------
Khvalera


Отправлено: 20:00, 10-07-2003 | #3


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


В конце Key:=#0 напиши

Добавлено:

Да, работу не гарантирую, потому как не ясно, что тебе надо.
но разницу почувствуешь однозначно.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 20:10, 10-07-2003 | #4


Аватара для khvalera

Пользователь


Сообщения: 100
Благодарности: 0

Профиль | Отправить PM | Цитировать


Извини, привел не весь код.
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]);

В том примере, что ты привел, согласен, все работает нормально.
А здесь поиск в базе данных только после второго вводимого символа.

-------
Khvalera


Отправлено: 20:29, 10-07-2003 | #5


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


В F1 сказано:
Цитата:
The Key parameter in the OnKeyPress event handler is of type Char; therefore, the OnKeyPress event registers the ASCII character of the key pressed. Keys that don't correspond to an ASCII Char value (Shift or F1, for example) don't generate an OnKeyPress event. Key combinations (such as Shift+A), generate only one OnKeyPress event (for this example, Shift+A results in a Key value of “A” if Caps Lock is off). To respond to non-ASCII keys or key combinations, use the  OnKeyDown or OnKeyUp event handlers.
Быть может стоит попробывать... хотя бы для того, чтобы заработало

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 02:18, 11-07-2003 | #6


Пользователь


Сообщения: 61
Благодарности: 0

Профиль | Отправить PM | Цитировать


khvalera
Ваще я бы использовал OnKeyDown or OnKeyUp

Отправлено: 12:30, 11-07-2003 | #7


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Spiderman
О чем и написано в F1

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 21:59, 11-07-2003 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » OnKeyPress

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход