Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.14;
Скачать: CL | DM;

Вниз

Как правильно осуществить переход между полями ввода (Edit)   Найти похожие ветки 

 
Бульбаш ©   (2003-04-02 10:40) [0]

по клавише Enter. Пошла критика, что Tab это кривость, хотя меня вполне устраивает, но юзвери переходят с доса и кричат. Пробовал обработчик OnkeyDown - чего-то не фунциклирует...


 
Johnmen ©   (2003-04-02 10:45) [1]

+ SelectNext


 
Жук ©   (2003-04-02 10:52) [2]

Я сначала тоже навигацию сделал по Enter"у, но привинтил на каждый переход Beep. Через неделю юзвери пользовались только Tab"ом. :-))) Психология !


 
stone ©   (2003-04-02 10:52) [3]

в OnKeyPress заменить код Ентера на Таб


 
serg_r_a   (2003-04-02 11:04) [4]

Небольшой примерчик, может кому еще пригодится

procedure Tform1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
ACtrl: TWinControl;
begin
if key = 13 then
begin
ACtrl := ActiveControl;
if ACtrl is TCustomMemo then exit;
repeat
ACtrl:= FindNextControl(ACtrl,true,true,false);
until (ACtrl is TCustomEdit) or
(ACtrl is TCustomComboBox) or
(ACtrl is TCustomListBox) or
(ACtrl is TCustomCheckBox) or
(ACtrl is TRadioButton);

ACtrl.SetFocus ;
end;
end;

Не забудьте установить свойство формы KeyPreview в true.


 
Бульбаш ©   (2003-04-02 11:10) [5]

А как правильно применить SelectNext? Даю в Edit1KeyDown
if (key=13) then Edit1.SelectNext, пишет
Undeclared identifier: "SelectNext". Пробую Edit2.SetFocus -
реакция нулевая.


 
Skier ©   (2003-04-02 11:15) [6]

procedure TWinControl.SelectNext(CurControl: TWinControl; GoForward, CheckTabStop: Boolean);


 
Бульбаш ©   (2003-04-02 11:19) [7]

Вроде бы заработало, всем большое спасибо :)


 
Serega ©   (2003-04-02 13:38) [8]

Для формы делаешь свойство KeyPreview = True, а затем на событие
OnKeyPress для этой формы "вешаешь" эту процедуру. Фокус переключится на следующий компонент в списке TabOrder. При нажатии на Esc форма будет сразу закрыватьсяю

procedure PressKey(FName: TForm; var Key: Char);
begin
With FName Do
Begin
If Key=#13 Then
Begin
Key:=#0;
Perform(WM_NEXTDLGCTL,0,0);
End;
If Key=#27 Then
Begin
Key:=#0;
FName.Close;
End;
End;
end;


 
Anatoly Podgoretsky ©   (2003-04-02 13:55) [9]

Через некоторое время будешь получать претензии, уже по поводу Enter, поскольку в других диалогах будет совсем другое поведение.



Страницы: 1 вся ветка

Текущий архив: 2003.04.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
1-44193
Reistlyn
2003-04-01 14:52
2003.04.14
Удаление данных из файла.


3-44024
Jaxtor
2003-03-25 16:07
2003.04.14
Procedure Unknown


6-44302
valerchik
2003-02-20 21:51
2003.04.14
подсчет трафика...


14-44400
Ahmad K
2003-03-28 14:24
2003.04.14
InstallShield


14-44455
race1
2003-03-30 15:46
2003.04.14
read speed