下面这个是我写的焦点自动移动的方法,我该如何把它定义成一个单元函数或过程放在公共单元里,以后被别的单元USES使用,我要是把form1去掉不能编译,显示不识别FindnextControl标识符,有什么好办法没?
procedure Form1.FindNextCtrl;
begin
if FindnextControl(activeControl,True,true,False)is TEdit then
TEdit(FindnextControl(activeControl,True,true,False)).SetFocus
else if FindnextControl(activeControl,True,true,False)is TCombobox then
TCombobox(FindnextControl(activeControl,True,true,False)).SetFocus
else if FindnextControl(activeControl,True,true,False)is TDateTimePicker then
TDateTimePicker(FindnextControl(activeControl,True,true,False)).SetFocus
else if FindnextControl(activeControl,True,true,False)is TMemo then
Tmemo(FindnextControl(activeControl,True,true,False)).SetFocus;
end;
procedure Form1.FindNextCtrl;
begin
if FindnextControl(activeControl,True,true,False)is TEdit then
TEdit(FindnextControl(activeControl,True,true,False)).SetFocus
else if FindnextControl(activeControl,True,true,False)is TCombobox then
TCombobox(FindnextControl(activeControl,True,true,False)).SetFocus
else if FindnextControl(activeControl,True,true,False)is TDateTimePicker then
TDateTimePicker(FindnextControl(activeControl,True,true,False)).SetFocus
else if FindnextControl(activeControl,True,true,False)is TMemo then
Tmemo(FindnextControl(activeControl,True,true,False)).SetFocus;
end;
其它所有的可獲取焦點的控制項的TabOrder屬性按順序設置好0,1,2,3...n在窗體(Form1)的KeyDown事件寫上一句話:SelectNext(ActiveControl,true,true);
這樣就行了,試試吧...
windows.PostMessage(Form1.Handle, WM_NEXTDLGCTL, 0, 0);