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;