Главная страница
    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.46 MB
Время: 0.007 c
14-44405
Style
2003-03-21 08:57
2003.04.14
---|Ветка была без названия|---


14-44364
Sredniy Medved
2003-03-31 12:04
2003.04.14
Проблемма с BreakPoint ами.


14-44331
GDBoy
2003-03-30 21:36
2003.04.14
Вирусы...


3-44046
Stas
2003-03-26 10:19
2003.04.14
DBGrid


14-44406
AndrewXXX
2003-03-27 10:27
2003.04.14
Ищу документацию





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский