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

Вниз

Как программно вызвать переход фокуса на следущ. контрол?   Найти похожие ветки 

 
lovres   (2003-09-24 15:15) [0]

Есть куча DBEdit"ов и надо по нажатию "Enter" переходить на следующий контрол. Как это сделать?


 
Skier ©   (2003-09-24 15:18) [1]

TWinControl.SelectNext(...) ?


 
webpauk   (2003-09-24 15:23) [2]

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


 
lovres ©   (2003-09-24 15:26) [3]

ну это понятно, но так надо для каждого контрола отдельно процедуру делать, а хотелось бы чтобы для всех была одна и осуществляла переход на след. контрол в TabControlList"е


 
Palladin ©   (2003-09-24 15:26) [4]


> webpauk

А ты уверен что Edit2 это следующий контрол?


 
Verg ©   (2003-09-24 15:27) [5]

PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);


 
lovres ©   (2003-09-24 15:33) [6]

Спасибо, Verg! API рулит!


 
still ©   (2003-09-24 15:45) [7]

а
Skier © (24.09.03 15:18) [1]
чем не устраивает?


 
Palladin ©   (2003-09-24 15:56) [8]

потому что у Vergа уже написано, а у Skierа нужно чего то еще там дописывать, нафиг надо...


 
Verg ©   (2003-09-24 16:23) [9]


> потому что у Vergа уже написано, а у Skierа нужно чего то
> еще там дописывать, нафиг надо...


... и не хватало еще вспотеть при этом...


 
lovres ©   (2003-09-24 16:56) [10]

Правильно, а нахрена там ещё Сендера вписывать, если тут всё уже есть, да и вариант красивый.


 
Vic   (2003-09-25 14:00) [11]


procedure TFNew.FormCreate(Sender: TObject);
begin
KeyPreview:=True;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key =VK_RETURN then begin
Key := 0;
SelectNext(ActiveControl,true,true);
end;
end;


 
Настенька   (2003-09-25 14:10) [12]

Вот намного легче способ
procedure tedit1.onkeypress;
if key=#13 then edit2.setfocus;
при нажатие в едите1 энтер курсор встанет на 2 эдит


 
Palladin ©   (2003-09-25 14:12) [13]

легче чем что?


 
Vic   (2003-09-25 14:16) [14]

обшибся...

>>procedure TFNew.FormCreate(Sender: TObject);
>>begin
>> KeyPreview:=True;
>>end;


procedure TForm1.FormCreate(Sender: TObject);
begin
KeyPreview:=True;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key =VK_RETURN then begin
Key := 0;
SelectNext(ActiveControl,true,true);
end;
end;


 
willys ©   (2003-09-25 14:31) [15]

если во время ввода не надо выполнять никаких проверок на нажатие других клавиш, то очень удобно пользоваться SelectNext, только ставить его надо в обработчик TDBEdit.OnKeyDown, а не на форму. ведь на форме могут быть и другие компоненты ;).
а вообще я когда-то потратил 10 минут и вывел новые компоненты из TEdit, TDBEdit, TComboBox и т.д., отличающиеся от стандартных только поведением при нажатии Enter и свойством, разрешающим/запрещающим это дело. что и всем советую. очень удобно, и форму не загромождаешь лишними событиями.



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

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

Наверх




Память: 0.5 MB
Время: 0.023 c
1-18394
Дедов Дмитрий
2003-09-25 17:01
2003.10.06
Печать через принт сервер


1-18348
Kiddy
2003-09-22 11:19
2003.10.06
При компиляции запускается дебагер Delphi


1-18372
Delphin
2003-09-22 22:18
2003.10.06
Удаление ключа из реестра


3-18272
Юля П
2003-09-15 10:45
2003.10.06
SQL запрос


1-18448
Василиск
2003-09-24 19:28
2003.10.06
Почему в QReporte при печати текст вылезает за облать компонента?