FocusHook:=SetWindowsHookEx(WH_CBT,@FocusHookProc,HInstance,0);function FocusHookProc(nCode: Integer;WParam: WPARAM;LParam: LPARAM): LRESULT;stdcall; var MainH:HWND; begin if nCode<0 then Result:= CallNextHookEx(FocusHook,nCode,WParam,LParam) else begin if nCode=HCBT_SETFOCUS then begin //取得焦點。 end; Result:= CallNextHookEx(FocusHook,nCode,WParam,LParam) end; end;
做一个用键盘控制 某控件的 位置. 取它的坐标. 给自定义报表的 Label /Edit用为什么 我用 KEYdown 事件里 无法移动呢 { VK_LEFT 25 37 Left Arrow键 VK_UP 26 38 Up Arrow键 VK_RIGHT 27 39 Right Arrow键 VK_DOWN 28 40 Down Arrow键 } if KEY=#38 then begin With ActiveControl.Name Do begin Top := Top+10; //left := Top+10; end; end;
FocusHook:=SetWindowsHookEx(WH_CBT,@FocusHookProc,HInstance,0);function FocusHookProc(nCode: Integer;WParam: WPARAM;LParam: LPARAM): LRESULT;stdcall;
var
MainH:HWND;
begin
if nCode<0 then
Result:= CallNextHookEx(FocusHook,nCode,WParam,LParam)
else
begin
if nCode=HCBT_SETFOCUS then
begin
//取得焦點。
end;
Result:= CallNextHookEx(FocusHook,nCode,WParam,LParam)
end;
end;
{
VK_LEFT 25 37 Left Arrow键
VK_UP 26 38 Up Arrow键
VK_RIGHT 27 39 Right Arrow键
VK_DOWN 28 40 Down Arrow键
}
if KEY=#38 then
begin
With ActiveControl.Name Do
begin
Top := Top+10;
//left := Top+10;
end;
end;
確定在:Keydown 的時候:執行了位置調整了嗎? keyPreview := True; 打開沒有?
引发 : Record,object or class type required换成单个控件名就行. 如果定义一个变量,放到变量里 ,那么要定义成什么类型的呢?
begin
Tmemo(ActiveControl).left := xx;
end;
谁 能说明下 ....明天 加分....大家快来啊
直接 with activecontrol do即可