高分!求助!!这样判断多个控件是否在一个矩形框内
我想做一个能在运行时移动多个控件的类,我现在已实现了移动一个控件!现在我需要做的时一次选择多个控件进行移动!我画了个矩形框来选择多个控件!但是无法判断那些控件在这个矩形框内!!望各位高手指点!!分不够可以加!!!
[解决办法]
RectInRegion
PtInRegion
[解决办法]
function RectInRegion(RGN: HRGN; const Rect: TRect): BOOL; stdcall;
[解决办法]
有系统函数
IntersectRect() //取得两个矩形的交集
IsRectEmpty() //矩形是否为空
var
vParent: TWinControl;
I: Integer;
vRect: TRect;
T: TRect;
begin
vRect := Rect(10, 10, 300, 300);
vParent := Self;
for I := 0 to vParent.ControlCount - 1 do
begin
if not vParent.Controls[I].Visible then Continue; // 不可见
IntersectRect(T, vParent.Controls[I].BoundsRect, vRect);
if not IsRectEmpty(T) then
begin
ShowMessage(vParent.Controls[I].Name);
end;
end;
end;