实现的步骤简介:
1、调入一张图像
2、然后用画图的方法将某个局部设置为热区(有多个热区需要设置)
3、设置好后,然后单击该热区,弹出一个窗体(已经建好的标准窗体Form)
如果那位热心的网友能较完整的解决上述问题,本人将送200分,决不食言。

解决方案 »

  1.   

    在Image1.OnmouseMove(Sender:TObject;x,y:integer); 中加入mouse 捕捉代碼
    var rects:array[0..10] of rect;
        i,j:integer;
    begin
      //定義區﹕
      rects[0].left:=12;
      rects[0].top:=20;
      //...
      j:=10;
      for i:=0 to j-1o
       if x>=ts[i].left and x<=rects[i].right and y>=rects[i].top and y<=rects[i] then
         begin
           //生成一個按衄﹔
           //or 畫一個凸出的圖
         end;
    end;
      

  2.   

    将各个热点的RECT设成全局变量(也可设成数组),在Form.Creat 或图像加载的方法中计算各热点的RECT,然后响应IMAGE的MOUSEMOVE方法,在此方法中用PtInRect函数判断鼠标是否在热点中,
    Var Rects:array[0..10] of TRect;
    Image1.OnmouseMove(Sender:TObject;x,y:integer); 
    var i:integer;
    begin
      for i:=0 to 10 do
       if PtInRect(rect1) then
         begin
           //在此绘出热点的图形
           //然后启动弹出窗体
           Exit;
         end;
    end;