转自:yostgxf
procedure TForm1.Button1Click(Sender: TObject);
var
Rect :TRect; //你的TRect
pt1, pt2, pt :TPoint; //pt1,pt2 你的线
i:integer;
begin
for i:=pt1.X to pt2.X do
begin
pt.X :=i;
pt.Y :=Trunc(((pt1.Y-pt2.Y)*pt1.X+pt2.X*pt1.Y+pt1.X*pt2.Y) div (pt1.X-pt2.X));
if not PtInRect(Rect, pt1)* PtInRect(Rect, pt) then
begin
//线 (斜线) 是与一TRect相交
end;
end;
end;
转自:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2501855
感觉他用的算法很好,如果觉得适用,能否给我一点转贴费!