Form上有一个TImage控件,上面显示了一幅图片,在TImage的OnMouseMove事件中我想判断光标位置是否在一个指定的矩形方框内,如果是就给出提示信息,现在提示信息能出来,但是当我指定的矩形方框在Image控件的底部时,Form上就出现了滚动条。我想知道为什么会出现滚动条,怎样改才不会出现呢?(说明:出现滚动条时,提示信息框并没有超出Form的显示范围)type
TMyHint = class(THintWindow);
var
HintWin: TMyHint;
----------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
HintWin := TMyHint.Create(self);
HintWin.Parent :=Form1;
HintWin.Color := clInfoBk;
end;
---------------------------------------------------
procedure TForm1.ImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Point:TPoint;
ImageRect: TRect;
begin
Point.X := X;
Point.Y := Y;
ImageRect := Rect(150,250,200,300);
if ptInRect(ImageRect,Point) then
begin
Cursor := crCross;
HintWin.Width := 140;
HintWin.Height := 75;
HintWin.Left:= Form1.Left + Image.Left + Point.X;
HintWin.Top := Form1.Top + Image.Top + Point.Y;
HintWin.Text:='仪器名称:孔隙水压力计'+#10+#13+'测点编号:A-1-1'+#10+#13+
'桩 号:1+099'+#10+#13+'坝 轴 距:5.0m'+#10+#13+
'埋 深:35.55m';
HintWin.Show;
end
else begin
Cursor := crDefault;
HintWin.Visible:=false;
end;
end;
TMyHint = class(THintWindow);
var
HintWin: TMyHint;
----------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
HintWin := TMyHint.Create(self);
HintWin.Parent :=Form1;
HintWin.Color := clInfoBk;
end;
---------------------------------------------------
procedure TForm1.ImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Point:TPoint;
ImageRect: TRect;
begin
Point.X := X;
Point.Y := Y;
ImageRect := Rect(150,250,200,300);
if ptInRect(ImageRect,Point) then
begin
Cursor := crCross;
HintWin.Width := 140;
HintWin.Height := 75;
HintWin.Left:= Form1.Left + Image.Left + Point.X;
HintWin.Top := Form1.Top + Image.Top + Point.Y;
HintWin.Text:='仪器名称:孔隙水压力计'+#10+#13+'测点编号:A-1-1'+#10+#13+
'桩 号:1+099'+#10+#13+'坝 轴 距:5.0m'+#10+#13+
'埋 深:35.55m';
HintWin.Show;
end
else begin
Cursor := crDefault;
HintWin.Visible:=false;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货