Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.014 c
14-18560
jack128
2003-09-19 01:36
2003.10.06
Именинники 19 сентября


9-18212
Psibug
2003-04-01 10:34
2003.10.06
Глюк в NVIDIA OpenGL или ещё где


6-18521
Lizard
2003-08-07 10:06
2003.10.06
Как сервером на удал-м. компе, передать инфу о файлах клиенту ?


14-18598
Vlad Oshin
2003-09-11 18:35
2003.10.06
к ветке Какой вы политической ориентации?


1-18430
petro
2003-09-25 11:25
2003.10.06
проблема со стартовыми параметрами




   Наверх