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

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

Next Tab [D5]


Михич ©   (2002-11-18 07:44:00) 

На форме у меня лежат куча Edit"ов. Между ними переход кнопочкой TAB, это все хорошо, а как сделать такой же переход ещё и при нажатии на Enter.
Вариант:
if ord(key)=13 then key:=chr(9);

чёй-то, не работает...


Vlad1   (2002-11-22 20:42:00) [1]

Procedure Tform1.FormKeyPress(Sender:TObject;var Key:Char);
begin
if Key=#13 then begin
Key:=0;
perform(CM_DialogKey,VK_TAB,0);end;
end;

Обязательно Form.KeyPreview:=True;
Юзай.
Удачи!


dim-   (2002-11-22 09:25:00) [2]

форма модальная, а в "ОК" ModalResult=mrOk


KSergey   (2002-11-21 06:25:00) [3]

Возможно, Ок сто ит как DefaultButton - тогда она естественно срабатывает по Enter.


Cherruty   (2002-11-20 10:33:00) [4]

Причем все равно как обрабатывать нажатие Enter, но я делаю так:

procedure TfrmBankEdit.EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN
then PostMessage(Self.Handle, WM_NEXTDLGCTL, 0, 0);
end;


Cherruty   (2002-11-20 10:29:00) [5]

Молодые люди помогите разобраться, почему при подобном переходе по Editам, после изменения данных срабатывает обработка события на Ок , хотя Editы никак с этим не связаны.


Дмитрий К.К.   (2002-11-18 17:40:00) [6]

Да вариантов МУЛЬОН


Manic Mechanic   (2002-11-18 12:52:00) [7]

По-моему так, причем работают и стрелки, а Esc закрывает форму

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var CtlDir: word;
begin
if(Key in [VK_UP, VK_DOWN, VK_RETURN])then begin
if Key=VK_UP then CtlDir := 1 else CtlDir := 0;
SendMessage(Handle, WM_NEXTDLGCTL, CtlDir, 0);
Key := 0;
end else if(Key=VK_ESCAPE)then begin
Key := 0;
Close;
end;
end;


Valeron   (2002-11-18 12:44:00) [8]

забыл!
для формы нужно сделать св-во keypreview = true.
А чтобы пищяло напиши Beep


shane54   (2002-11-18 10:38:00) [9]

Попробовал всё что было предложено - только вариант Valeron (18.11.02 10:27) не пищит...


Jony   (2002-11-18 10:29:00) [10]

procedure TfrmForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then begin
Perform(WM_NEXTDLGCTL, 0, 0);
Key:=VK_TAB;
end;
end;


Valeron   (2002-11-18 10:27:00) [11]

Привет, программеры!
Я использую этот код уже несколько лет и не жужу:

procedure TClientForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) then
begin
Key:=#0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;

Выставляю где надо TabStop, и задаю TabOrder так чтобы шел обход компонент как нужно.
P.S. Кто мидасом занимается?


shane54   (2002-11-18 10:12:00) [12]

Народ а почему при нажатии на Enter звуковой сигнал раздаётся????
На форме 2 EditBox"а и код, который предложил BIN © (18.11.02 08:13)

procedure TfmMain.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then SelectNext(Sender As tWinControl,true,true);
end;



MBo   (2002-11-18 08:46:00) [13]

у меня все нормально. Поиграй с Boolean параметрами


Михич   (2002-11-18 08:27:00) [14]

TabOrder стоит нормально. При нажатии на ТАБ все прагает нормально...


MBo   (2002-11-18 08:24:00) [15]

>перескакивает сразу на кнопочку в конце
Установи TabOrder


Михич   (2002-11-18 08:20:00) [16]

прыгают, между Edit"ами, спасибо, НО...
>BIN только между Edit"ами
>MBo с первого Edit"а перескакивает сразу на кнопочку в конце...

а моно сделать так, чтобы Enter на форме, работал как ТАБ?


MBo   (2002-11-18 08:13:00) [17]

общий обработчик, в котором
ActiveControl:=FindNextControl(TEdit(Sender),true,true,true);


BIN   (2002-11-18 08:13:00) [18]

procedure TfmMain.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then SelectNext(Sender As tWinControl,true,true);
end;


Михич   (2002-11-18 08:05:00) [19]

:-) 15 Edit"ов...
... как ты предлагаешь им воспользоваться???


Дмитрий К.К.   (2002-11-18 07:58:00) [20]

Нуно менять ActiveControl


Наверх

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