发表用户:讨论贴
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?boardID=4&ID=7190
信息原始来源:James MapInfo技术论坛

文章标题:图元关键属性提示框问题

VickyMao

当使用select工具时,鼠标放在某个图元上之后,会出现提示框显示该图元的关键属性,我不想让他显示这个提示框,而显示我自己做的提示框,怎么实现呢,我用的是delphi

yxbhw

我刚做好了一个,下面是思路。
1、在一个TPanel上放LABEL,将TPanel修改成黄色HINT的样子
2、将timer的触发时间定为1秒以上,timer触发时显示TPanel,并根据关键属性更改LABEL,改变TPanel位置到屏幕外,显示TPanel,改变TPanel位置到鼠标附近。
3、Map1MouseMove事件将timer重置,隐藏TPanel。注意一定要在此事件中判断上次的坐标是否等于本次的坐标,因为显示TPanel后会不停的引起Map1MouseMove事件。

  Mouse_MapPoint    : TPoint;
  Mouse_LastMapPoint: TPoint;

procedure Tmain.Map1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Mouse_MapPoint.X := X;
  Mouse_MapPoint.Y := Y;
  if (Mouse_LastMapPoint.X <> Mouse_MapPoint.X) or (Mouse_LastMapPoint.Y <> Mouse_MapPoint.Y) then
    begin
      Mouse_LastMapPoint.X := X;
      Mouse_LastMapPoint.Y := Y;
      tmr_hint.Enabled := False;
      tmr_hint.Enabled := True;
      main.pnl_hint.Visible := False;
    end;
end;

procedure Tmain.tmr_hintTimer(Sender: TObject);
begin
  tmr_hint.Enabled := False;
  ShowHint(Map1, Mouse_MapPoint.X, Mouse_MapPoint.Y);
end; 

VickyMao

tmr_hint是什么?

yxbhw

tmr_hint是时钟Timer
pnl_hint是Tpanel

VickyMao

那怎么让使用"选择"工具时弹出的小提示框不显示呢

yxbhw

在设计阶段可以设置不显示hint

VickyMao

我说的那个提示框是在地图窗口中弹出的信息框,一般是图元的关键属性字段,showhint设为true和false都不起作用的

yxbhw

双击MAPX控件-->mouse-->show infotip去掉看看

VickyMao

yxbhw,谢谢,可以了,呵呵