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

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

Смена активного поля.


Страницы:   1 2

kronos ©   (2002-03-14 13:29:00) 

У меня в форме есть несколько полей типа TEdit. Подскажите, как сделать, чтобы по нажатию клавиши "Enter" курсор переходил из одного поля в другое? Заранее спасибо всем откликнувшимся.


kronos   (2002-03-15 13:00:00) [1]

>Perform(WM_NEXTDLGCTL,0,0)

что значит эта строка?


kronos   (2002-03-15 00:09:00) [2]

Попробую это уже завтра - все на работе.


Andreyka   (2002-03-14 22:09:00) [3]

Ставишь у формы KeyPreview = true и создаешь событие KeyPress следующего вида:


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


kronos   (2002-03-14 18:53:00) [4]

Какой павлин, какой мавлин ...

Я ввожу в поле Edit1 данные, нажимаю Ентер, данные из поля Edit1 пропадают, курсор перемещается в поле Edit2.

И еще. Может ли чистится поле из-за какой-то установки в Properties (не прятаться)?

В поле Edit1 у меня осталось

procedure TForm4.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=0013 then Edit2.SetFocus;
end;

В поле Edit2

procedure TForm4.Edit2Change(Sender: TObject);
begin
form4.Button1.Enabled:=true;
end;

procedure TForm4.Edit2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=0013 then Button1.SetFocus;
end;


Johnmen   (2002-03-14 18:04:00) [5]

Ну так обрабатывай OnEnter на Edit2 и если поле 1 не заполнено, то SetFocus на него !


kronos   (2002-03-14 17:59:00) [6]

>И зачем это form4.Edit2.Enabled:=true; ?
А поле Edit2 должно быть недоступно,пока не заполнится Edit1


Johnmen   (2002-03-14 16:55:00) [7]

Как же трудно с тобой общаться !
Ты даже не хочешь перечитать, что тебе отвечали...
И зачем это form4.Edit2.Enabled:=true; ?


kronos   (2002-03-14 16:51:00) [8]

после нажатия Ентер для перехода в следующее поле


kronos   (2002-03-14 16:48:00) [9]

procedure TForm4.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=0013 then Edit2.SetFocus;
end;

procedure TForm4.Edit1Change(Sender: TObject);
begin
form4.Edit2.Enabled:=true;
end;

Больше у меня на Едите ничего не висит


Johnmen   (2002-03-14 16:36:00) [10]

После чего пропадает то ?


kronos   (2002-03-14 16:28:00) [11]

Пропадает введенная инфо из поля


kronos   (2002-03-14 16:07:00) [12]

А, кстати, чем отличается ActiveControl от SetFocus?


Johnmen   (2002-03-14 15:59:00) [13]

1. Для начала переходи по OnKeyDown
2. >>>также глючит и при Edit1.SetFocus<<< а в чем же глюк ?


Malder   (2002-03-14 15:58:00) [14]

ничего глючить не должно... что-то у тебя написано видно...
посмотри обработчики событий на edit"е


kronos   (2002-03-14 15:54:00) [15]

также глючит и при Edit1.SetFocus


kronos   (2002-03-14 15:52:00) [16]

У меня глюк такой только в одном поле и на onEnter у меня ничего нет


Song   (2002-03-14 15:04:00) [17]

Возможно у тебя очистка стоит на onEnter...


kronos   (2002-03-14 14:57:00) [18]

Ой, глюк получился.

to Song
>Для каждого события ONKEYUP можно написать код: if Key = 0013
>then //здесь делаешь активным один из edit"ов
>ActiveControl := Имя_следующего_едита

вот так и перехожу


kronos   (2002-03-14 14:54:00) [19]

to Song
>Для каждого события ONKEYUP можно написать код: if Key = 0013 >then //здесь делаешь активным один из edit"ов
>ActiveControl := Имя_следующего_едита
вот так и перехожу


Alx2   (2002-03-14 14:31:00) [20]

Сорри, не все вычистил. Вот так надо:

Procedure TMainForm.Edit1KeyDown(Sender: TObject; Var KEY: Word;
Shift: TShiftState);
Begin
Case KEY Of
VK_DOWN:
If GetKeyState(VK_CONTROL) >= 0 Then
SelectNext(ActiveControl, True, True);
VK_UP:
If GetKeyState(VK_CONTROL) >= 0 Then
SelectNext(ActiveControl, False, True);
End;
End;


Страницы:   1 2

Наверх

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