如何在按下一个按纽时知道前一个光标焦点在什么控件上呢?(100分)

  • 主题发起人 主题发起人 hzzzk
  • 开始时间 开始时间
H

hzzzk

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序需实现这样的功能,首先在FORM中有几个控件,像什么EDIT、DBGRID一类的东西。
我需做到的是当光标定位某个控件后按下同一个按纽时执行不同的任务,那就需在按下按
纽时知道前一个光标焦点的位置,怎么办?(光标焦点还包括DBGRID中某几列)
 
方法1.你的Button必须是不接受焦点的SpeedButton类型.
方法2.你可以让光标进入每个控件时写它的Tag或记录到一个TObject变量中,然后检查
方法3.必须这样吗?
 
if ActiveControl.Name = 'edit1' then ShowMessage('现在焦点在edit1上');
if ActiveControl.Name = 'DBGRID1' then ShowMessage('现在焦点在DBGRID1上');

 
procedure TForm1.Button2Click(Sender: TObject);
var
i,tab:integer;
begin
tab:= (sender as TWinControl ).TabOrder;
for i:=0 to ComponentCount -1 do
if (Components as TWinControl ).TabOrder =tab-1 then
showmessage( (Components as TWinControl ).Name );
end;
//将这个事件赋给每一个twincontrol类的控件的onclick;
 
用一个全局变量保存一下刚才焦点所在位置不就行了,呵呵
 
同意pclover的方法2和liangdewei
 
后退
顶部