![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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