在 onkeypress 事件中加入:
if key = 下键
then Perform(WM_NEXTDLGCTL,0,0);
if key = 下键
then Perform(WM_NEXTDLGCTL,0,0);
解决方案 »
- dxTreeList 的问题!!求救!!
- 高价求开发DLL
- adoquery问题
- 请问如何把作好的delphi程序打包成可以脱离delphi而独立运行的exe文件
- 怎样把24bit bmp,ico,wav封装在dll中,在程序中如何调用
- ldhlyh(小菜一碟) 来拿分ldhlyh(小菜一碟) 来拿分
- 我想双击执行文件,下面的代码有错,请帮忙!
- 求助Delphi登陆窗口中,用combobox显示数据库中的用户名
- 设置Form的Parent属性后,Form上组件无法获得焦点的问题。
- 哪里有关于Delphi的聊天室?中英文均可!!!
- 请问各位,delphi中的todo list有什么作用,我一直没用到,好象功能挺强似的
- 在一个窗体上如何用上下箭头键控制焦点的移动????
form1.SelectNext(activecontrol,next,true)
next = true 向后
next = false 向前
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=vk_Down then
form.SelectNext(activecontrol,true,true)
else
if Key=vk_up then
form.SelectNext(activecontrol,false,true)
end;
//我自己也要的
//我已经测试过
//就是分太少了//pas
unit Unit3;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
vFocusEdit: TEdit;
vLeftEdit: TEdit;
vRightEdit: TEdit;
vDownEdit: TEdit;
vUpEdit: TEdit;
I: Integer;
begin
if not (Key in [VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT]) then Exit;
vFocusEdit := nil;
for I := 0 to ControlCount - 1 do
if (Controls[I] is TEdit) and TEdit(Controls[I]).Focused then begin
vFocusEdit := TEdit(Controls[I]);
Break;
end;
if not Assigned(vFocusEdit) then Exit;
vLeftEdit := nil;
vRightEdit := nil;
vDownEdit := nil;
vUpEdit := nil;
for I := 0 to ControlCount - 1 do
if (Controls[I] is TEdit) and (not TEdit(Controls[I]).Focused) then begin
if ((TEdit(Controls[I]).Top + TEdit(Controls[I]).Height > vFocusEdit.Top) and
(TEdit(Controls[I]).Top < vFocusEdit.Top + vFocusEdit.Height)) then begin
if (TEdit(Controls[I]).Left + TEdit(Controls[I]).Width < vFocusEdit.Left) then
if Assigned(vLeftEdit) then
if (TEdit(Controls[I]).Left + TEdit(Controls[I]).Width >
vLeftEdit.Left + vLeftEdit.Width) then
vLeftEdit := TEdit(Controls[I])
else
else vLeftEdit := TEdit(Controls[I]);
end;
if ((TEdit(Controls[I]).Top + TEdit(Controls[I]).Height > vFocusEdit.Top) and
(TEdit(Controls[I]).Top < vFocusEdit.Top + vFocusEdit.Height)) then begin
if (TEdit(Controls[I]).Left > vFocusEdit.Left + vFocusEdit.Width) then
if Assigned(vRightEdit) then
if (TEdit(Controls[I]).Left <
vRightEdit.Left + vRightEdit.Width) then
vRightEdit := TEdit(Controls[I])
else
else vRightEdit := TEdit(Controls[I]);
end;
if ((TEdit(Controls[I]).Left + TEdit(Controls[I]).Width > vFocusEdit.Left) and
(TEdit(Controls[I]).Left < vFocusEdit.Left + vFocusEdit.Width)) then begin
if (TEdit(Controls[I]).Top + TEdit(Controls[I]).Height < vFocusEdit.Top) then
if Assigned(vUpEdit) then
if (TEdit(Controls[I]).Top + TEdit(Controls[I]).Height >
vUpEdit.Top + vUpEdit.Height) then
vUpEdit := TEdit(Controls[I])
else
else vUpEdit := TEdit(Controls[I]);
end;
if ((TEdit(Controls[I]).Left + TEdit(Controls[I]).Width > vFocusEdit.Left) and
(TEdit(Controls[I]).Left < vFocusEdit.Left + vFocusEdit.Width)) then begin
if (TEdit(Controls[I]).Top > vFocusEdit.Top + vFocusEdit.Height) then
if Assigned(vDownEdit) then
if (TEdit(Controls[I]).Top <
vDownEdit.Top + vDownEdit.Height) then
vDownEdit := TEdit(Controls[I])
else
else vDownEdit := TEdit(Controls[I]);
end;
end;
case Key of
VK_UP: if Assigned(vUpEdit) then vUpEdit.SetFocus;
VK_DOWN: if Assigned(vDownEdit) then vDownEdit.SetFocus;
VK_LEFT: if Assigned(vLeftEdit) then vLeftEdit.SetFocus;
VK_RIGHT: if Assigned(vRightEdit) then vRightEdit.SetFocus;
end;
end;end.//dfm
object Form1: TForm1
Left = 188
Top = 289
Width = 401
Height = 167
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
KeyPreview = True
OldCreateOrder = False
OnKeyDown = FormKeyDown
PixelsPerInch = 96
TextHeight = 13
object Edit1: TEdit
Left = 0
Top = 8
Width = 121
Height = 21
TabOrder = 0
Text = 'Edit1'
end
object Edit2: TEdit
Left = 136
Top = 8
Width = 121
Height = 21
TabOrder = 1
Text = 'Edit2'
end
object Edit3: TEdit
Left = 264
Top = 8
Width = 121
Height = 21
TabOrder = 2
Text = 'Edit3'
end
object Edit4: TEdit
Left = 0
Top = 40
Width = 121
Height = 21
TabOrder = 3
Text = 'Edit4'
end
object Edit5: TEdit
Left = 136
Top = 40
Width = 121
Height = 21
TabOrder = 4
Text = 'Edit5'
end
object Edit6: TEdit
Left = 264
Top = 40
Width = 121
Height = 21
TabOrder = 5
Text = 'Edit6'
end
object Edit7: TEdit
Left = 0
Top = 72
Width = 121
Height = 21
TabOrder = 6
Text = 'Edit7'
end
object Edit8: TEdit
Left = 128
Top = 72
Width = 65
Height = 21
TabOrder = 7
Text = 'Edit8'
end
object Edit9: TEdit
Left = 200
Top = 72
Width = 73
Height = 21
TabOrder = 8
Text = 'Edit9'
end
object Edit10: TEdit
Left = 280
Top = 72
Width = 105
Height = 21
TabOrder = 9
Text = 'Edit10'
end
object Edit11: TEdit
Left = 0
Top = 104
Width = 89
Height = 21
TabOrder = 10
Text = 'Edit11'
end
object Edit12: TEdit
Left = 96
Top = 104
Width = 121
Height = 21
TabOrder = 11
Text = 'Edit12'
end
object Edit13: TEdit
Left = 224
Top = 103
Width = 89
Height = 21
TabOrder = 12
Text = 'Edit13'
end
object Edit14: TEdit
Left = 320
Top = 104
Width = 65
Height = 21
TabOrder = 13
Text = 'Edit14'
end
end