Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Вниз

Как правильно осуществить переход между полями ввода (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-44180
dim-
2003-04-03 10:18
2003.04.14
Прозрачная форма


14-44394
Дмитрий К.К.
2003-03-26 11:50
2003.04.14
Именинники 26 марта


6-44317
akello
2003-02-19 14:20
2003.04.14
две проблемы по сетям (ip and share)


4-44510
mbIkola
2003-02-12 19:52
2003.04.14
Знатоки в чем ошибка с хуком WH_CBT и TAPISRV ??


3-44080
Виталий Панасенко
2003-03-26 12:26
2003.04.14
LocalSQL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский