Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Edit не регирует на нажатие enter [D6, XP]


Max727 ©   (2007-04-10 10:18:00) 

Здравствуйте. Очень нужна помощь.
Впервые ствлкиваюсь с такой прблемой
при нажатии клавиши Enter не вызываются
обработчики событий ни KeyDown, ни KeyPress
компонента TEdit
как исправить такие глюки?


Max727   (2007-04-12 12:48:00) [1]

2 _RusLAN


> А в Object Inspector на вкладке Events обработчик прописан?


да прописаны
событие вызывается для всех
кнопок, кроме EnEnter

но это уже не важно
в новом проекте все работет нормально
меня просто мучит вопрос:
из за чего такое могло быть?


_RusLAN   (2007-04-11 17:53:00) [2]

> [8] Max727   (11.04.07 17:32)
> Да,
> так обрабатывается
>
> И мой проект (я пересоздал заново)
> скопировал все обработчики
> заработал, что меня вогнало в тупик
> тексты модулей полностью идентичны
> но один проект работает(тот, что я только что создал)
> второй-нет
> я просто хотел разобраться в этой злой шутке
> но так и не понял причины поже еще не раз на те же грабли
> наступлю

А в Object Inspector на вкладке Events обработчик прописан?


Ega23   (2007-04-11 17:34:00) [3]


> тексты модулей полностью идентичны


У классика было "Не верю!"
Сам понимаешь, чудес не бывает.


Max727   (2007-04-11 17:32:00) [4]

Да,
так обрабатывается

И мой проект (я пересоздал заново)
скопировал все обработчики
заработал, что меня вогнало в тупик
тексты модулей полностью идентичны
но один проект работает(тот, что я только что создал)
второй-нет
я просто хотел разобраться в этой злой шутке
но так и не понял причины поже еще не раз на те же грабли наступлю


Ega23   (2007-04-11 17:19:00) [5]


> Без разницы
> обрабатываются все клавиши кроме Enter


Врёшь.


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   procedure FormKeyDown(Sender: TObject; var Key: Word;
     Shift: TShiftState);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if Key=VK_RETURN then Label1.Caption := 'Enter' else Label1.Caption := 'Not Enter';
end;

end.


Max727   (2007-04-11 17:08:00) [6]

2 Ega23

> Form1.KeyPreview := True;

Без разницы
обрабатываются все клавиши кроме Enter
а как назло нужна именно она


Ega23   (2007-04-11 16:49:00) [7]


> программа упорно игнорирует нажатие этой клавиши


Form1.KeyPreview := True;


Max727   (2007-04-11 16:44:00) [8]

Информация интересная, но конкрктных примеров нет
где взять эту очередь
и как ее переписать?

2 Steep
FormKeyPress тоже не вызывается
программа упорно игнорирует нажатие этой клавиши


Steep   (2007-04-10 11:58:00) [9]

procedure  TForm1.FormKeyPress(Sender:  TObject;  var  Key:  Char);
    begin
        //KeyPreview  :=  True;
        if  Key  =  #13  then
            begin
                ShowMessage('Key2');
                Key  :=  #0;
            end;
    end;


Leonid Troyanovsky   (2007-04-10 10:30:00) [10]


> Max727   (10.04.07 10:18)  

> как исправить такие глюки?

Сам ты глюки. Читай лучшего друга детей.
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/9882c0fd38c38706

--
Regards, LVT.


tesseract   (2007-04-10 10:29:00) [11]

Это не глюк а нормальная работа компонента. Переписывай очередь сообщений для того чтобы поймать VK_ENTER.


Наверх

Титульная страница Поиск, карта сайта Написать письмо