Вниз
Скачать: 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.012 c
1-18346
MK
2003-09-23 12:31
2003.10.06
MainMenu


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


1-18354
Dark Elf
2003-09-23 11:34
2003.10.06
Обработка нажатия клавиши F1


1-18314
Лана Розанова
2003-09-21 16:41
2003.10.06
Запуск сервиса


3-18260
dream
2003-09-15 08:28
2003.10.06
Как подсчитать общую сумму значений в 1 столбце




   Наверх